module AluDecoder(
  input         clock,
  input         reset,
  input  [31:0] io_instr,
  input  [63:0] io_srcData_oprand1,
  input  [63:0] io_srcData_oprand2,
  input  [63:0] io_srcData_oprand3,
  output        io_calEn_extRegEn,
  output        io_calEn_shiftRegEn,
  output        io_calEn_shiftInstrEn,
  output        io_calEn_shiftRegType0,
  output        io_calEn_shiftRegType1,
  output        io_calEn_shiftRegType1Long,
  output        io_calEn_shiftRegType2,
  output        io_calEn_condEn,
  output        io_calEn_addrP0En,
  output        io_calEn_addrP1En,
  output        io_calEn_bitMaskEn,
  output        io_calEn_andP0En,
  output        io_calEn_andP1En,
  output        io_calEn_orP0En,
  output        io_calEn_orP1En,
  output        io_calEn_xorP0En,
  output        io_calEn_xorP1En,
  output [2:0]  io_calEn_movSelEn,
  output        io_calEn_bfmEn,
  output        io_calEn_bfmSign,
  output [4:0]  io_calEn_miscSelEn,
  output        io_immData_sf,
  output [2:0]  io_immData_imm3,
  output [4:0]  io_immData_imm5,
  output [5:0]  io_immData_imm6,
  output [11:0] io_immData_imm12,
  output [15:0] io_immData_imm16,
  output [5:0]  io_immData_imms6,
  output [5:0]  io_immData_immr6,
  output        io_immData_immN,
  output        io_immData_sh1,
  output [1:0]  io_immData_sh2,
  output [1:0]  io_immData_hw,
  output [2:0]  io_immData_opt,
  output [1:0]  io_immData_op2,
  output [3:0]  io_immData_cond,
  output [3:0]  io_immData_immMask,
  output [18:0] io_immData_immHi,
  output [1:0]  io_immData_immLo,
  output        io_addrMuxSel_addrOp1En,
  output        io_addrMuxSel_addrOp2ExtRegEn,
  output        io_addrMuxSel_addrOp2ShiftRegEn,
  output        io_addrMuxSel_addrOp2En,
  output        io_addrMuxSel_addrOp2NotEn,
  output        io_addrMuxSel_addrOp3En,
  output        io_logicMuxSel_logicOp1En,
  output        io_logicMuxSel_logicOp2BitMaskEn,
  output        io_logicMuxSel_logicOp2ShiftRegEn,
  output        io_logicMuxSel_logicOp2En,
  output        io_logicMuxSel_logicOp2NotEn,
  output        io_logicMuxSel_logicOp3En,
  output        io_intWrEn_addrWrEn,
  output        io_intWrEn_logicWrEn,
  output        io_intWrEn_shiftWrEn,
  output        io_intWrEn_movWrEn,
  output        io_intWrEn_bfmWrEn,
  output        io_intWrEn_wrResultEn,
  output        io_intWrEn_wrnzcvEn,
  output        io_intWrEn_miscWrEn
);
`ifdef RANDOMIZE_REG_INIT
  reg [31:0] _RAND_0;
  reg [31:0] _RAND_1;
  reg [31:0] _RAND_2;
  reg [31:0] _RAND_3;
  reg [31:0] _RAND_4;
  reg [31:0] _RAND_5;
  reg [31:0] _RAND_6;
  reg [31:0] _RAND_7;
  reg [31:0] _RAND_8;
  reg [31:0] _RAND_9;
  reg [31:0] _RAND_10;
  reg [31:0] _RAND_11;
  reg [31:0] _RAND_12;
  reg [31:0] _RAND_13;
  reg [31:0] _RAND_14;
  reg [31:0] _RAND_15;
  reg [31:0] _RAND_16;
  reg [31:0] _RAND_17;
  reg [31:0] _RAND_18;
  reg [31:0] _RAND_19;
  reg [31:0] _RAND_20;
  reg [31:0] _RAND_21;
  reg [31:0] _RAND_22;
  reg [31:0] _RAND_23;
  reg [31:0] _RAND_24;
  reg [31:0] _RAND_25;
  reg [31:0] _RAND_26;
  reg [31:0] _RAND_27;
  reg [31:0] _RAND_28;
  reg [31:0] _RAND_29;
  reg [31:0] _RAND_30;
  reg [31:0] _RAND_31;
  reg [31:0] _RAND_32;
  reg [31:0] _RAND_33;
  reg [31:0] _RAND_34;
  reg [31:0] _RAND_35;
  reg [31:0] _RAND_36;
  reg [31:0] _RAND_37;
  reg [31:0] _RAND_38;
  reg [31:0] _RAND_39;
  reg [31:0] _RAND_40;
  reg [31:0] _RAND_41;
  reg [31:0] _RAND_42;
  reg [31:0] _RAND_43;
  reg [31:0] _RAND_44;
  reg [31:0] _RAND_45;
  reg [31:0] _RAND_46;
  reg [31:0] _RAND_47;
  reg [31:0] _RAND_48;
  reg [31:0] _RAND_49;
  reg [31:0] _RAND_50;
  reg [31:0] _RAND_51;
  reg [31:0] _RAND_52;
  reg [31:0] _RAND_53;
`endif // RANDOMIZE_REG_INIT
  reg  sf; // @[AluDecoder.scala 74:19]
  reg [2:0] imm3; // @[AluDecoder.scala 75:21]
  reg [4:0] imm5; // @[AluDecoder.scala 76:21]
  reg [5:0] imm6; // @[AluDecoder.scala 77:21]
  reg [11:0] imm12; // @[AluDecoder.scala 78:22]
  reg [15:0] imm16; // @[AluDecoder.scala 79:22]
  reg [5:0] imms6; // @[AluDecoder.scala 80:22]
  reg [5:0] immr6; // @[AluDecoder.scala 81:22]
  reg  immN; // @[AluDecoder.scala 82:21]
  reg  sh1; // @[AluDecoder.scala 83:20]
  reg [1:0] sh2; // @[AluDecoder.scala 84:20]
  reg [1:0] hw; // @[AluDecoder.scala 85:19]
  reg [2:0] opt; // @[AluDecoder.scala 86:20]
  reg [1:0] op2; // @[AluDecoder.scala 87:20]
  reg [3:0] cond; // @[AluDecoder.scala 88:21]
  reg [3:0] immMask; // @[AluDecoder.scala 89:24]
  reg [18:0] immHi; // @[AluDecoder.scala 90:22]
  reg [1:0] immLo; // @[AluDecoder.scala 91:22]
  reg  extRegEn; // @[AluDecoder.scala 92:25]
  reg  shiftRegEn; // @[AluDecoder.scala 93:27]
  reg  shiftInstrEn; // @[AluDecoder.scala 94:29]
  reg  shiftRegType0; // @[AluDecoder.scala 95:30]
  reg  shiftRegType1; // @[AluDecoder.scala 96:30]
  reg  shiftRegType1Long; // @[AluDecoder.scala 97:34]
  reg  condEn; // @[AluDecoder.scala 99:23]
  reg  addrP0En; // @[AluDecoder.scala 100:25]
  reg  addrP1En; // @[AluDecoder.scala 101:25]
  reg  bitMaskEn; // @[AluDecoder.scala 102:26]
  reg  andP0En; // @[AluDecoder.scala 103:24]
  reg  andP1En; // @[AluDecoder.scala 104:24]
  reg  orP0En; // @[AluDecoder.scala 105:23]
  reg  orP1En; // @[AluDecoder.scala 106:23]
  reg  xorP0En; // @[AluDecoder.scala 107:24]
  reg  xorP1En; // @[AluDecoder.scala 108:24]
  reg [2:0] movSelEn; // @[AluDecoder.scala 109:25]
  reg  bfmEn; // @[AluDecoder.scala 110:22]
  reg  bfmSign; // @[AluDecoder.scala 111:24]
  reg [4:0] miscSelEn; // @[AluDecoder.scala 112:26]
  reg  addrOp1En; // @[AluDecoder.scala 113:26]
  reg  addrOp2ExtRegEn; // @[AluDecoder.scala 114:32]
  reg  addrOp2ShiftRegEn; // @[AluDecoder.scala 115:34]
  reg  addrOp2En; // @[AluDecoder.scala 116:26]
  reg  addrOp2NotEn; // @[AluDecoder.scala 117:29]
  reg  addrOp3En; // @[AluDecoder.scala 118:26]
  reg  logicOp1En; // @[AluDecoder.scala 119:27]
  reg  logicOp2BitMaskEn; // @[AluDecoder.scala 120:34]
  reg  logicOp2ShiftRegEn; // @[AluDecoder.scala 121:35]
  reg  logicOp2NotEn; // @[AluDecoder.scala 123:30]
  wire  long = io_instr[15:10] > 6'h4; // @[AluDecoder.scala 261:34]
  wire  _T = ~long; // @[AluDecoder.scala 268:40]
  wire [31:0] _T_52 = io_instr & 32'h7fe0fc00; // @[AluDecoder.scala 384:31]
  wire  _GEN_2 = 32'h1a000000 == _T_52 & io_instr[31]; // @[AluDecoder.scala 384:45 404:10 133:6]
  wire  _GEN_12 = 32'h3a000000 == _T_52 | 32'h1a000000 == _T_52; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_14 = 32'h3a000000 == _T_52 ? io_instr[31] : _GEN_2; // @[AluDecoder.scala 384:45 404:10]
  wire [31:0] _T_56 = io_instr & 32'h7fe00000; // @[AluDecoder.scala 384:31]
  wire  _GEN_25 = 32'hb200000 == _T_56 ? 1'h0 : 32'h3a000000 == _T_52 | 32'h1a000000 == _T_52; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_26 = 32'hb200000 == _T_56 ? 1'h0 : 32'h3a000000 == _T_52; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_28 = 32'hb200000 == _T_56 ? io_instr[31] : _GEN_14; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_29 = 32'hb200000 == _T_56 ? io_instr[12:10] : 3'h0; // @[AluDecoder.scala 384:45 405:12]
  wire [2:0] _GEN_35 = 32'hb200000 == _T_56 ? io_instr[15:13] : 3'h0; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_58 = io_instr & 32'h7f800000; // @[AluDecoder.scala 384:31]
  wire  _GEN_37 = 32'h11000000 == _T_58 ? 1'h0 : 32'hb200000 == _T_56; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_41 = 32'h11000000 == _T_58 ? 1'h0 : _GEN_26; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_43 = 32'h11000000 == _T_58 ? 1'h0 : _GEN_25; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_44 = 32'h11000000 == _T_58 ? io_instr[31] : _GEN_28; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_45 = 32'h11000000 == _T_58 ? 3'h0 : _GEN_29; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_47 = 32'h11000000 == _T_58 ? io_instr[15:10] : 6'h0; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_48 = 32'h11000000 == _T_58 ? io_instr[21:10] : 12'h0; // @[AluDecoder.scala 384:45 408:13]
  wire [1:0] _GEN_50 = 32'h11000000 == _T_58 ? io_instr[23:22] : 2'h0; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_51 = 32'h11000000 == _T_58 ? 3'h0 : _GEN_35; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_60 = io_instr & 32'h7f200000; // @[AluDecoder.scala 384:31]
  wire  _GEN_53 = 32'hb000000 == _T_60 ? 1'h0 : _GEN_37; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_55 = 32'hb000000 == _T_60 ? 1'h0 : 32'h11000000 == _T_58; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_58 = 32'hb000000 == _T_60 ? _T : 32'h11000000 == _T_58 | _GEN_25; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_59 = 32'hb000000 == _T_60 ? long : _GEN_37; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_61 = 32'hb000000 == _T_60 ? 1'h0 : _GEN_41; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_63 = 32'hb000000 == _T_60 ? 1'h0 : _GEN_43; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_64 = 32'hb000000 == _T_60 ? io_instr[31] : _GEN_44; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_65 = 32'hb000000 == _T_60 ? 3'h0 : _GEN_45; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_67 = 32'hb000000 == _T_60 ? io_instr[15:10] : _GEN_47; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_68 = 32'hb000000 == _T_60 ? 12'h0 : _GEN_48; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_69 = 32'hb000000 == _T_60 ? 1'h0 : 32'h11000000 == _T_58 & io_instr[22]; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_70 = 32'hb000000 == _T_60 ? io_instr[23:22] : _GEN_50; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_71 = 32'hb000000 == _T_60 ? 3'h0 : _GEN_51; // @[AluDecoder.scala 384:45 411:11]
  wire  _GEN_74 = 32'h2b200000 == _T_56 ? 1'h0 : 32'hb000000 == _T_60 | 32'h11000000 == _T_58; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_75 = 32'h2b200000 == _T_56 ? 1'h0 : _GEN_55; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_76 = 32'h2b200000 == _T_56 ? 1'h0 : 32'hb000000 == _T_60; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_78 = 32'h2b200000 == _T_56 ? 1'h0 : _GEN_58; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_79 = 32'h2b200000 == _T_56 | _GEN_59; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_81 = 32'h2b200000 == _T_56 ? 1'h0 : _GEN_61; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_84 = 32'h2b200000 == _T_56 ? 1'h0 : _GEN_63; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_85 = 32'h2b200000 == _T_56 ? io_instr[31] : _GEN_64; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_86 = 32'h2b200000 == _T_56 ? io_instr[12:10] : _GEN_65; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_88 = 32'h2b200000 == _T_56 ? 6'h0 : _GEN_67; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_89 = 32'h2b200000 == _T_56 ? 12'h0 : _GEN_68; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_90 = 32'h2b200000 == _T_56 ? 1'h0 : _GEN_69; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_91 = 32'h2b200000 == _T_56 ? 2'h0 : _GEN_70; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_92 = 32'h2b200000 == _T_56 ? io_instr[15:13] : _GEN_71; // @[AluDecoder.scala 384:45 411:11]
  wire  _GEN_94 = 32'h31000000 == _T_58 ? 1'h0 : 32'h2b200000 == _T_56 | _GEN_53; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_97 = 32'h31000000 == _T_58 ? 1'h0 : _GEN_76; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_103 = 32'h31000000 == _T_58 ? 1'h0 : _GEN_79; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_104 = 32'h31000000 == _T_58 ? 1'h0 : 32'h2b200000 == _T_56; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_106 = 32'h31000000 == _T_58 ? 1'h0 : _GEN_84; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_107 = 32'h31000000 == _T_58 ? io_instr[31] : _GEN_85; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_108 = 32'h31000000 == _T_58 ? 3'h0 : _GEN_86; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_110 = 32'h31000000 == _T_58 ? io_instr[15:10] : _GEN_88; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_111 = 32'h31000000 == _T_58 ? io_instr[21:10] : _GEN_89; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_112 = 32'h31000000 == _T_58 ? io_instr[22] : _GEN_90; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_113 = 32'h31000000 == _T_58 ? io_instr[23:22] : _GEN_91; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_114 = 32'h31000000 == _T_58 ? 3'h0 : _GEN_92; // @[AluDecoder.scala 384:45 411:11]
  wire  _GEN_116 = 32'h2b000000 == _T_60 ? 1'h0 : _GEN_94; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_118 = 32'h2b000000 == _T_60 ? 1'h0 : 32'h31000000 == _T_58 | _GEN_75; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_121 = 32'h2b000000 == _T_60 ? _T : 32'h31000000 == _T_58 | _GEN_78; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_122 = 32'h2b000000 == _T_60 ? long : 32'h31000000 == _T_58 | (32'h2b200000 == _T_56 | _GEN_59); // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_124 = 32'h2b000000 == _T_60 ? _T : 32'h31000000 == _T_58 | _GEN_81; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_125 = 32'h2b000000 == _T_60 ? long : _GEN_103; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_126 = 32'h2b000000 == _T_60 ? long : _GEN_104; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_128 = 32'h2b000000 == _T_60 ? 1'h0 : _GEN_106; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_129 = 32'h2b000000 == _T_60 ? io_instr[31] : _GEN_107; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_130 = 32'h2b000000 == _T_60 ? 3'h0 : _GEN_108; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_132 = 32'h2b000000 == _T_60 ? io_instr[15:10] : _GEN_110; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_133 = 32'h2b000000 == _T_60 ? 12'h0 : _GEN_111; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_134 = 32'h2b000000 == _T_60 ? 1'h0 : _GEN_112; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_135 = 32'h2b000000 == _T_60 ? io_instr[23:22] : _GEN_113; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_136 = 32'h2b000000 == _T_60 ? 3'h0 : _GEN_114; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_68 = io_instr & 32'h7fe0001f; // @[AluDecoder.scala 384:31]
  wire  _GEN_139 = 32'h2b20001f == _T_68 ? 1'h0 : 32'h2b000000 == _T_60 | (32'h31000000 == _T_58 | _GEN_74); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_140 = 32'h2b20001f == _T_68 ? 1'h0 : _GEN_118; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_141 = 32'h2b20001f == _T_68 ? 1'h0 : 32'h2b000000 == _T_60 | _GEN_97; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_143 = 32'h2b20001f == _T_68 ? 1'h0 : _GEN_121; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_146 = 32'h2b20001f == _T_68 ? 1'h0 : _GEN_124; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_150 = 32'h2b20001f == _T_68 ? 1'h0 : _GEN_128; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_151 = 32'h2b20001f == _T_68 ? io_instr[31] : _GEN_129; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_152 = 32'h2b20001f == _T_68 ? io_instr[12:10] : _GEN_130; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_154 = 32'h2b20001f == _T_68 ? 6'h0 : _GEN_132; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_155 = 32'h2b20001f == _T_68 ? 12'h0 : _GEN_133; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_156 = 32'h2b20001f == _T_68 ? 1'h0 : _GEN_134; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_157 = 32'h2b20001f == _T_68 ? 2'h0 : _GEN_135; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_158 = 32'h2b20001f == _T_68 ? io_instr[15:13] : _GEN_136; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_70 = io_instr & 32'h7f80001f; // @[AluDecoder.scala 384:31]
  wire  _GEN_160 = 32'h3100001f == _T_70 ? 1'h0 : 32'h2b20001f == _T_68 | _GEN_116; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_163 = 32'h3100001f == _T_70 ? 1'h0 : _GEN_141; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_166 = 32'h3100001f == _T_70 ? 1'h0 : 32'h2b20001f == _T_68 | _GEN_122; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_169 = 32'h3100001f == _T_70 ? 1'h0 : 32'h2b20001f == _T_68 | _GEN_125; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_170 = 32'h3100001f == _T_70 ? 1'h0 : 32'h2b20001f == _T_68 | _GEN_126; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_172 = 32'h3100001f == _T_70 ? 1'h0 : _GEN_150; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_173 = 32'h3100001f == _T_70 ? io_instr[31] : _GEN_151; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_174 = 32'h3100001f == _T_70 ? 3'h0 : _GEN_152; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_176 = 32'h3100001f == _T_70 ? io_instr[15:10] : _GEN_154; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_177 = 32'h3100001f == _T_70 ? io_instr[21:10] : _GEN_155; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_178 = 32'h3100001f == _T_70 ? io_instr[22] : _GEN_156; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_179 = 32'h3100001f == _T_70 ? io_instr[23:22] : _GEN_157; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_180 = 32'h3100001f == _T_70 ? 3'h0 : _GEN_158; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_72 = io_instr & 32'h7f20001f; // @[AluDecoder.scala 384:31]
  wire  _GEN_182 = 32'h2b00001f == _T_72 ? 1'h0 : _GEN_160; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_183 = 32'h2b00001f == _T_72 | (32'h3100001f == _T_70 | _GEN_139); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_184 = 32'h2b00001f == _T_72 ? 1'h0 : 32'h3100001f == _T_70 | _GEN_140; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_187 = 32'h2b00001f == _T_72 ? _T : 32'h3100001f == _T_70 | _GEN_143; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_188 = 32'h2b00001f == _T_72 ? long : _GEN_166; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_190 = 32'h2b00001f == _T_72 ? _T : 32'h3100001f == _T_70 | _GEN_146; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_191 = 32'h2b00001f == _T_72 ? long : _GEN_169; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_192 = 32'h2b00001f == _T_72 ? long : _GEN_170; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_194 = 32'h2b00001f == _T_72 ? 1'h0 : _GEN_172; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_195 = 32'h2b00001f == _T_72 ? io_instr[31] : _GEN_173; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_196 = 32'h2b00001f == _T_72 ? 3'h0 : _GEN_174; // @[AluDecoder.scala 384:45 405:12]
  wire [5:0] _GEN_198 = 32'h2b00001f == _T_72 ? io_instr[15:10] : _GEN_176; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_199 = 32'h2b00001f == _T_72 ? 12'h0 : _GEN_177; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_200 = 32'h2b00001f == _T_72 ? 1'h0 : _GEN_178; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_201 = 32'h2b00001f == _T_72 ? io_instr[23:22] : _GEN_179; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_202 = 32'h2b00001f == _T_72 ? 3'h0 : _GEN_180; // @[AluDecoder.scala 384:45 411:11]
  wire [31:0] _T_74 = io_instr & 32'h7fe00c10; // @[AluDecoder.scala 384:31]
  wire  _GEN_204 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_182; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_205 = 32'h3a400800 == _T_74 ? 1'h0 : 32'h2b00001f == _T_72 | (32'h3100001f == _T_70 | _GEN_139); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_206 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_184; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_207 = 32'h3a400800 == _T_74 ? 1'h0 : 32'h2b00001f == _T_72 | _GEN_163; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_211 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_188; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_214 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_191; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_215 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_192; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_218 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_194; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_220 = 32'h3a400800 == _T_74 ? io_instr[31] : _GEN_195; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_221 = 32'h3a400800 == _T_74 ? 3'h0 : _GEN_196; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_222 = 32'h3a400800 == _T_74 ? io_instr[20:16] : 5'h0; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_223 = 32'h3a400800 == _T_74 ? 6'h0 : _GEN_198; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_224 = 32'h3a400800 == _T_74 ? 12'h0 : _GEN_199; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_225 = 32'h3a400800 == _T_74 ? 1'h0 : _GEN_200; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_226 = 32'h3a400800 == _T_74 ? 2'h0 : _GEN_201; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_227 = 32'h3a400800 == _T_74 ? 3'h0 : _GEN_202; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_228 = 32'h3a400800 == _T_74 ? io_instr[15:12] : 4'h0; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_229 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_204; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_230 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_205; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_231 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_206; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_232 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_207; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_236 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_211; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_239 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_214; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_240 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_215; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_242 = 32'h3a400000 == _T_74 ? 1'h0 : 32'h3a400800 == _T_74 | _GEN_183; // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_245 = 32'h3a400000 == _T_74 ? io_instr[31] : _GEN_220; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_246 = 32'h3a400000 == _T_74 ? 3'h0 : _GEN_221; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_247 = 32'h3a400000 == _T_74 ? io_instr[20:16] : _GEN_222; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_248 = 32'h3a400000 == _T_74 ? 6'h0 : _GEN_223; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_249 = 32'h3a400000 == _T_74 ? 12'h0 : _GEN_224; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_250 = 32'h3a400000 == _T_74 ? 1'h0 : _GEN_225; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_251 = 32'h3a400000 == _T_74 ? 2'h0 : _GEN_226; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_252 = 32'h3a400000 == _T_74 ? 3'h0 : _GEN_227; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_253 = 32'h3a400000 == _T_74 ? io_instr[15:12] : _GEN_228; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_255 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_230; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_256 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_231; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_257 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_232; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_259 = 32'h4b200000 == _T_56 ? 1'h0 : 32'h3a400000 == _T_74 | 32'h3a400800 == _T_74; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_260 = 32'h4b200000 == _T_56 ? 1'h0 : 32'h3a400000 == _T_74 | (32'h3a400800 == _T_74 | _GEN_187); // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_263 = 32'h4b200000 == _T_56 ? 1'h0 : 32'h3a400000 == _T_74 | (32'h3a400800 == _T_74 | _GEN_190); // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_265 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_240; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_267 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_242; // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_268 = 32'h4b200000 == _T_56 ? 1'h0 : 32'h3a400000 == _T_74 | _GEN_218; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_270 = 32'h4b200000 == _T_56 ? 1'h0 : 32'h3a400000 == _T_74 | (32'h3a400800 == _T_74 | _GEN_194); // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_271 = 32'h4b200000 == _T_56 ? io_instr[31] : _GEN_245; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_272 = 32'h4b200000 == _T_56 ? io_instr[12:10] : _GEN_246; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_273 = 32'h4b200000 == _T_56 ? 5'h0 : _GEN_247; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_274 = 32'h4b200000 == _T_56 ? 6'h0 : _GEN_248; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_275 = 32'h4b200000 == _T_56 ? 12'h0 : _GEN_249; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_276 = 32'h4b200000 == _T_56 ? 1'h0 : _GEN_250; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_277 = 32'h4b200000 == _T_56 ? 2'h0 : _GEN_251; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_278 = 32'h4b200000 == _T_56 ? io_instr[15:13] : _GEN_252; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_279 = 32'h4b200000 == _T_56 ? 4'h0 : _GEN_253; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_280 = 32'h51000000 == _T_58 ? 1'h0 : 32'h4b200000 == _T_56 | _GEN_229; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_283 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_257; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_285 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_259; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_287 = 32'h51000000 == _T_58 ? 1'h0 : 32'h4b200000 == _T_56 | _GEN_236; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_289 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_263; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_290 = 32'h51000000 == _T_58 ? 1'h0 : 32'h4b200000 == _T_56 | _GEN_239; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_291 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_265; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_294 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_268; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_296 = 32'h51000000 == _T_58 ? 1'h0 : _GEN_270; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_297 = 32'h51000000 == _T_58 ? io_instr[31] : _GEN_271; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_298 = 32'h51000000 == _T_58 ? 3'h0 : _GEN_272; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_299 = 32'h51000000 == _T_58 ? 5'h0 : _GEN_273; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_300 = 32'h51000000 == _T_58 ? io_instr[15:10] : _GEN_274; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_301 = 32'h51000000 == _T_58 ? io_instr[21:10] : _GEN_275; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_302 = 32'h51000000 == _T_58 ? io_instr[22] : _GEN_276; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_303 = 32'h51000000 == _T_58 ? io_instr[23:22] : _GEN_277; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_304 = 32'h51000000 == _T_58 ? 3'h0 : _GEN_278; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_305 = 32'h51000000 == _T_58 ? 4'h0 : _GEN_279; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_306 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_280; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_308 = 32'h4b000000 == _T_60 ? 1'h0 : 32'h51000000 == _T_58 | _GEN_256; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_311 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_285; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_312 = 32'h4b000000 == _T_60 ? _T : 32'h51000000 == _T_58 | _GEN_260; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_313 = 32'h4b000000 == _T_60 ? long : _GEN_287; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_315 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_289; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_316 = 32'h4b000000 == _T_60 ? long : _GEN_290; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_317 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_291; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_320 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_294; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_322 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_296; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_323 = 32'h4b000000 == _T_60 ? io_instr[31] : _GEN_297; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_324 = 32'h4b000000 == _T_60 ? 3'h0 : _GEN_298; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_325 = 32'h4b000000 == _T_60 ? 5'h0 : _GEN_299; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_326 = 32'h4b000000 == _T_60 ? io_instr[15:10] : _GEN_300; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_327 = 32'h4b000000 == _T_60 ? 12'h0 : _GEN_301; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_328 = 32'h4b000000 == _T_60 ? 1'h0 : _GEN_302; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_329 = 32'h4b000000 == _T_60 ? io_instr[23:22] : _GEN_303; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_330 = 32'h4b000000 == _T_60 ? 3'h0 : _GEN_304; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_331 = 32'h4b000000 == _T_60 ? 4'h0 : _GEN_305; // @[AluDecoder.scala 384:45 412:12]
  wire [31:0] _T_84 = io_instr & 32'h7f2003e0; // @[AluDecoder.scala 384:31]
  wire  _GEN_332 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_306; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_334 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_308; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_337 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_311; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_338 = 32'h4b0003e0 == _T_84 ? _T : _GEN_312; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_339 = 32'h4b0003e0 == _T_84 ? long : _GEN_313; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_341 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_315; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_342 = 32'h4b0003e0 == _T_84 ? long : _GEN_316; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_343 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_317; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_344 = 32'h4b0003e0 == _T_84 ? 1'h0 : 32'h4b000000 == _T_60 | (32'h51000000 == _T_58 | (32'h4b200000 ==
    _T_56 | (32'h3a400000 == _T_74 | (32'h3a400800 == _T_74 | (32'h2b00001f == _T_72 | (32'h3100001f == _T_70 | (32'h2b20001f
     == _T_68 | (32'h2b000000 == _T_60 | (32'h31000000 == _T_58 | (32'h2b200000 == _T_56 | (32'hb000000 == _T_60 | (32'h11000000
     == _T_58 | (32'hb200000 == _T_56 | _GEN_12))))))))))))); // @[AluDecoder.scala 384:45 398:17]
  wire  _GEN_346 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_320; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_348 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_322; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_349 = 32'h4b0003e0 == _T_84 ? io_instr[31] : _GEN_323; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_350 = 32'h4b0003e0 == _T_84 ? 3'h0 : _GEN_324; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_351 = 32'h4b0003e0 == _T_84 ? 5'h0 : _GEN_325; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_352 = 32'h4b0003e0 == _T_84 ? io_instr[15:10] : _GEN_326; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_353 = 32'h4b0003e0 == _T_84 ? 12'h0 : _GEN_327; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_354 = 32'h4b0003e0 == _T_84 ? 1'h0 : _GEN_328; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_355 = 32'h4b0003e0 == _T_84 ? io_instr[23:22] : _GEN_329; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_356 = 32'h4b0003e0 == _T_84 ? 3'h0 : _GEN_330; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_357 = 32'h4b0003e0 == _T_84 ? 4'h0 : _GEN_331; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_359 = 32'h6b200000 == _T_56 ? 1'h0 : 32'h4b0003e0 == _T_84 | (32'h4b000000 == _T_60 | (32'h51000000 ==
    _T_58 | _GEN_255)); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_360 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_334; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_361 = 32'h6b200000 == _T_56 ? 1'h0 : 32'h4b0003e0 == _T_84 | (32'h4b000000 == _T_60 | _GEN_283); // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_363 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_337; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_364 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_338; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_367 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_341; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_371 = 32'h6b200000 == _T_56 ? 1'h0 : 32'h4b0003e0 == _T_84 | (32'h4b000000 == _T_60 | (32'h51000000 ==
    _T_58 | _GEN_267)); // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_372 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_346; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_374 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_348; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_375 = 32'h6b200000 == _T_56 ? io_instr[31] : _GEN_349; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_376 = 32'h6b200000 == _T_56 ? io_instr[12:10] : _GEN_350; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_377 = 32'h6b200000 == _T_56 ? 5'h0 : _GEN_351; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_378 = 32'h6b200000 == _T_56 ? 6'h0 : _GEN_352; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_379 = 32'h6b200000 == _T_56 ? 12'h0 : _GEN_353; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_380 = 32'h6b200000 == _T_56 ? 1'h0 : _GEN_354; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_381 = 32'h6b200000 == _T_56 ? 2'h0 : _GEN_355; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_382 = 32'h6b200000 == _T_56 ? io_instr[15:13] : _GEN_356; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_383 = 32'h6b200000 == _T_56 ? 4'h0 : _GEN_357; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_384 = 32'h71000000 == _T_58 ? 1'h0 : 32'h6b200000 == _T_56 | _GEN_332; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_387 = 32'h71000000 == _T_58 ? 1'h0 : _GEN_361; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_389 = 32'h71000000 == _T_58 ? 1'h0 : _GEN_363; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_391 = 32'h71000000 == _T_58 ? 1'h0 : 32'h6b200000 == _T_56 | _GEN_339; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_394 = 32'h71000000 == _T_58 ? 1'h0 : 32'h6b200000 == _T_56 | _GEN_342; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_395 = 32'h71000000 == _T_58 ? 1'h0 : 32'h6b200000 == _T_56 | _GEN_343; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_398 = 32'h71000000 == _T_58 ? 1'h0 : _GEN_372; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_400 = 32'h71000000 == _T_58 ? 1'h0 : _GEN_374; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_401 = 32'h71000000 == _T_58 ? io_instr[31] : _GEN_375; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_402 = 32'h71000000 == _T_58 ? 3'h0 : _GEN_376; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_403 = 32'h71000000 == _T_58 ? 5'h0 : _GEN_377; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_404 = 32'h71000000 == _T_58 ? io_instr[15:10] : _GEN_378; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_405 = 32'h71000000 == _T_58 ? io_instr[21:10] : _GEN_379; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_406 = 32'h71000000 == _T_58 ? io_instr[22] : _GEN_380; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_407 = 32'h71000000 == _T_58 ? io_instr[23:22] : _GEN_381; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_408 = 32'h71000000 == _T_58 ? 3'h0 : _GEN_382; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_409 = 32'h71000000 == _T_58 ? 4'h0 : _GEN_383; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_410 = 32'h6b000000 == _T_60 ? 1'h0 : _GEN_384; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_412 = 32'h6b000000 == _T_60 ? 1'h0 : 32'h71000000 == _T_58 | _GEN_360; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_415 = 32'h6b000000 == _T_60 ? 1'h0 : _GEN_389; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_416 = 32'h6b000000 == _T_60 ? _T : 32'h71000000 == _T_58 | _GEN_364; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_417 = 32'h6b000000 == _T_60 ? long : _GEN_391; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_419 = 32'h6b000000 == _T_60 ? _T : 32'h71000000 == _T_58 | _GEN_367; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_420 = 32'h6b000000 == _T_60 ? long : _GEN_394; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_421 = 32'h6b000000 == _T_60 ? long : _GEN_395; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_424 = 32'h6b000000 == _T_60 ? 1'h0 : _GEN_398; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_426 = 32'h6b000000 == _T_60 ? 1'h0 : _GEN_400; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_427 = 32'h6b000000 == _T_60 ? io_instr[31] : _GEN_401; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_428 = 32'h6b000000 == _T_60 ? 3'h0 : _GEN_402; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_429 = 32'h6b000000 == _T_60 ? 5'h0 : _GEN_403; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_430 = 32'h6b000000 == _T_60 ? io_instr[15:10] : _GEN_404; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_431 = 32'h6b000000 == _T_60 ? 12'h0 : _GEN_405; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_432 = 32'h6b000000 == _T_60 ? 1'h0 : _GEN_406; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_433 = 32'h6b000000 == _T_60 ? io_instr[23:22] : _GEN_407; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_434 = 32'h6b000000 == _T_60 ? 3'h0 : _GEN_408; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_435 = 32'h6b000000 == _T_60 ? 4'h0 : _GEN_409; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_436 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_410; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_438 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_412; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_441 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_415; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_442 = 32'h6b0003e0 == _T_84 ? _T : _GEN_416; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_443 = 32'h6b0003e0 == _T_84 ? long : _GEN_417; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_445 = 32'h6b0003e0 == _T_84 ? _T : _GEN_419; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_446 = 32'h6b0003e0 == _T_84 ? long : _GEN_420; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_447 = 32'h6b0003e0 == _T_84 ? long : _GEN_421; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_448 = 32'h6b0003e0 == _T_84 ? 1'h0 : 32'h6b000000 == _T_60 | (32'h71000000 == _T_58 | (32'h6b200000 ==
    _T_56 | _GEN_344)); // @[AluDecoder.scala 384:45 398:17]
  wire  _GEN_449 = 32'h6b0003e0 == _T_84 ? 1'h0 : 32'h6b000000 == _T_60 | (32'h71000000 == _T_58 | _GEN_371); // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_450 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_424; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_452 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_426; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_453 = 32'h6b0003e0 == _T_84 ? io_instr[31] : _GEN_427; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_454 = 32'h6b0003e0 == _T_84 ? 3'h0 : _GEN_428; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_455 = 32'h6b0003e0 == _T_84 ? 5'h0 : _GEN_429; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_456 = 32'h6b0003e0 == _T_84 ? io_instr[15:10] : _GEN_430; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_457 = 32'h6b0003e0 == _T_84 ? 12'h0 : _GEN_431; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_458 = 32'h6b0003e0 == _T_84 ? 1'h0 : _GEN_432; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_459 = 32'h6b0003e0 == _T_84 ? io_instr[23:22] : _GEN_433; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_460 = 32'h6b0003e0 == _T_84 ? 3'h0 : _GEN_434; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_461 = 32'h6b0003e0 == _T_84 ? 4'h0 : _GEN_435; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_463 = 32'h6b20001f == _T_68 ? 1'h0 : 32'h6b0003e0 == _T_84 | (32'h6b000000 == _T_60 | (32'h71000000 ==
    _T_58 | _GEN_359)); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_464 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_438; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_465 = 32'h6b20001f == _T_68 ? 1'h0 : 32'h6b0003e0 == _T_84 | (32'h6b000000 == _T_60 | _GEN_387); // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_467 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_441; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_468 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_442; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_471 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_445; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_475 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_449; // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_476 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_450; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_478 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_452; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_479 = 32'h6b20001f == _T_68 ? io_instr[31] : _GEN_453; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_480 = 32'h6b20001f == _T_68 ? io_instr[12:10] : _GEN_454; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_481 = 32'h6b20001f == _T_68 ? 5'h0 : _GEN_455; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_482 = 32'h6b20001f == _T_68 ? 6'h0 : _GEN_456; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_483 = 32'h6b20001f == _T_68 ? 12'h0 : _GEN_457; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_484 = 32'h6b20001f == _T_68 ? 1'h0 : _GEN_458; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_485 = 32'h6b20001f == _T_68 ? 2'h0 : _GEN_459; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_486 = 32'h6b20001f == _T_68 ? io_instr[15:13] : _GEN_460; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_487 = 32'h6b20001f == _T_68 ? 4'h0 : _GEN_461; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_488 = 32'h7100001f == _T_70 ? 1'h0 : 32'h6b20001f == _T_68 | _GEN_436; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_491 = 32'h7100001f == _T_70 ? 1'h0 : _GEN_465; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_493 = 32'h7100001f == _T_70 ? 1'h0 : _GEN_467; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_495 = 32'h7100001f == _T_70 ? 1'h0 : 32'h6b20001f == _T_68 | _GEN_443; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_498 = 32'h7100001f == _T_70 ? 1'h0 : 32'h6b20001f == _T_68 | _GEN_446; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_499 = 32'h7100001f == _T_70 ? 1'h0 : 32'h6b20001f == _T_68 | _GEN_447; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_502 = 32'h7100001f == _T_70 ? 1'h0 : _GEN_476; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_504 = 32'h7100001f == _T_70 ? 1'h0 : _GEN_478; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_505 = 32'h7100001f == _T_70 ? io_instr[31] : _GEN_479; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_506 = 32'h7100001f == _T_70 ? 3'h0 : _GEN_480; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_507 = 32'h7100001f == _T_70 ? 5'h0 : _GEN_481; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_508 = 32'h7100001f == _T_70 ? io_instr[15:10] : _GEN_482; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_509 = 32'h7100001f == _T_70 ? io_instr[21:10] : _GEN_483; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_510 = 32'h7100001f == _T_70 ? io_instr[22] : _GEN_484; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_511 = 32'h7100001f == _T_70 ? io_instr[23:22] : _GEN_485; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_512 = 32'h7100001f == _T_70 ? 3'h0 : _GEN_486; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_513 = 32'h7100001f == _T_70 ? 4'h0 : _GEN_487; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_514 = 32'h6b00001f == _T_72 ? 1'h0 : _GEN_488; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_516 = 32'h6b00001f == _T_72 ? 1'h0 : 32'h7100001f == _T_70 | _GEN_464; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_519 = 32'h6b00001f == _T_72 ? 1'h0 : _GEN_493; // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_520 = 32'h6b00001f == _T_72 ? _T : 32'h7100001f == _T_70 | _GEN_468; // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_521 = 32'h6b00001f == _T_72 ? long : _GEN_495; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_523 = 32'h6b00001f == _T_72 ? _T : 32'h7100001f == _T_70 | _GEN_471; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_524 = 32'h6b00001f == _T_72 ? long : _GEN_498; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_525 = 32'h6b00001f == _T_72 ? long : _GEN_499; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_528 = 32'h6b00001f == _T_72 ? 1'h0 : _GEN_502; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_530 = 32'h6b00001f == _T_72 ? 1'h0 : _GEN_504; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_531 = 32'h6b00001f == _T_72 ? io_instr[31] : _GEN_505; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_532 = 32'h6b00001f == _T_72 ? 3'h0 : _GEN_506; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_533 = 32'h6b00001f == _T_72 ? 5'h0 : _GEN_507; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_534 = 32'h6b00001f == _T_72 ? io_instr[15:10] : _GEN_508; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_535 = 32'h6b00001f == _T_72 ? 12'h0 : _GEN_509; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_536 = 32'h6b00001f == _T_72 ? 1'h0 : _GEN_510; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_537 = 32'h6b00001f == _T_72 ? io_instr[23:22] : _GEN_511; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_538 = 32'h6b00001f == _T_72 ? 3'h0 : _GEN_512; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_539 = 32'h6b00001f == _T_72 ? 4'h0 : _GEN_513; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_540 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_514; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_541 = 32'h7a400800 == _T_74 ? 1'h0 : 32'h6b00001f == _T_72 | (32'h7100001f == _T_70 | _GEN_463); // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_542 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_516; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_543 = 32'h7a400800 == _T_74 ? 1'h0 : 32'h6b00001f == _T_72 | _GEN_491; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_547 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_521; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_550 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_524; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_551 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_525; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_554 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_528; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_556 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_530; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_557 = 32'h7a400800 == _T_74 ? io_instr[31] : _GEN_531; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_558 = 32'h7a400800 == _T_74 ? 3'h0 : _GEN_532; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_559 = 32'h7a400800 == _T_74 ? io_instr[20:16] : _GEN_533; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_560 = 32'h7a400800 == _T_74 ? 6'h0 : _GEN_534; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_561 = 32'h7a400800 == _T_74 ? 12'h0 : _GEN_535; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_562 = 32'h7a400800 == _T_74 ? 1'h0 : _GEN_536; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_563 = 32'h7a400800 == _T_74 ? 2'h0 : _GEN_537; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_564 = 32'h7a400800 == _T_74 ? 3'h0 : _GEN_538; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_565 = 32'h7a400800 == _T_74 ? io_instr[15:12] : _GEN_539; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_566 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_540; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_567 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_541; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_568 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_542; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_569 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_543; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_572 = 32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | _GEN_520); // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_573 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_547; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_576 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_550; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_577 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_551; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_580 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_554; // @[AluDecoder.scala 384:45 401:17]
  wire  _GEN_582 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_556; // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_583 = 32'h7a400000 == _T_74 ? io_instr[31] : _GEN_557; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_584 = 32'h7a400000 == _T_74 ? 3'h0 : _GEN_558; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_585 = 32'h7a400000 == _T_74 ? io_instr[20:16] : _GEN_559; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_586 = 32'h7a400000 == _T_74 ? 6'h0 : _GEN_560; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_587 = 32'h7a400000 == _T_74 ? 12'h0 : _GEN_561; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_588 = 32'h7a400000 == _T_74 ? 1'h0 : _GEN_562; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_589 = 32'h7a400000 == _T_74 ? 2'h0 : _GEN_563; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_590 = 32'h7a400000 == _T_74 ? 3'h0 : _GEN_564; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_591 = 32'h7a400000 == _T_74 ? io_instr[15:12] : _GEN_565; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_592 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_566; // @[AluDecoder.scala 384:45 386:16]
  wire  _GEN_593 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_567; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_594 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_568; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_595 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_569; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_598 = 32'h5a000000 == _T_52 ? 1'h0 : 32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | _GEN_520); // @[AluDecoder.scala 384:45 392:16]
  wire  _GEN_599 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_573; // @[AluDecoder.scala 384:45 393:16]
  wire  _GEN_601 = 32'h5a000000 == _T_52 ? 1'h0 : 32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | _GEN_523); // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_602 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_576; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_603 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_577; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_605 = 32'h5a000000 == _T_52 ? 1'h0 : 32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | (32'h6b00001f ==
    _T_72 | (32'h7100001f == _T_70 | _GEN_475))); // @[AluDecoder.scala 384:45 400:25]
  wire  _GEN_609 = 32'h5a000000 == _T_52 ? io_instr[31] : _GEN_583; // @[AluDecoder.scala 384:45 404:10]
  wire [2:0] _GEN_610 = 32'h5a000000 == _T_52 ? 3'h0 : _GEN_584; // @[AluDecoder.scala 384:45 405:12]
  wire [4:0] _GEN_611 = 32'h5a000000 == _T_52 ? io_instr[20:16] : _GEN_585; // @[AluDecoder.scala 384:45 406:12]
  wire [5:0] _GEN_612 = 32'h5a000000 == _T_52 ? 6'h0 : _GEN_586; // @[AluDecoder.scala 384:45 407:12]
  wire [11:0] _GEN_613 = 32'h5a000000 == _T_52 ? 12'h0 : _GEN_587; // @[AluDecoder.scala 384:45 408:13]
  wire  _GEN_614 = 32'h5a000000 == _T_52 ? 1'h0 : _GEN_588; // @[AluDecoder.scala 384:45 409:11]
  wire [1:0] _GEN_615 = 32'h5a000000 == _T_52 ? 2'h0 : _GEN_589; // @[AluDecoder.scala 384:45 410:11]
  wire [2:0] _GEN_616 = 32'h5a000000 == _T_52 ? 3'h0 : _GEN_590; // @[AluDecoder.scala 384:45 411:11]
  wire [3:0] _GEN_617 = 32'h5a000000 == _T_52 ? io_instr[15:12] : _GEN_591; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_619 = 32'h7a000000 == _T_52 ? 1'h0 : _GEN_593; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_620 = 32'h7a000000 == _T_52 ? 1'h0 : _GEN_594; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_621 = 32'h7a000000 == _T_52 ? 1'h0 : _GEN_595; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_628 = 32'h7a000000 == _T_52 ? 1'h0 : _GEN_602; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_629 = 32'h7a000000 == _T_52 ? 1'h0 : _GEN_603; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_633 = 32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 | (32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | (32'h6b00001f
     == _T_72 | (32'h7100001f == _T_70 | (32'h6b20001f == _T_68 | (32'h6b0003e0 == _T_84 | (32'h6b000000 == _T_60 | (32'h71000000
     == _T_58 | (32'h6b200000 == _T_56 | (32'h4b0003e0 == _T_84 | (32'h4b000000 == _T_60 | (32'h51000000 == _T_58 | 32'h4b200000
     == _T_56))))))))))))); // @[AluDecoder.scala 384:45 402:20]
  wire  _GEN_635 = 32'h7a000000 == _T_52 ? io_instr[31] : _GEN_609; // @[AluDecoder.scala 384:45 404:10]
  wire [5:0] _GEN_638 = 32'h7a000000 == _T_52 ? 6'h0 : _GEN_612; // @[AluDecoder.scala 384:45 407:12]
  wire [1:0] _GEN_641 = 32'h7a000000 == _T_52 ? 2'h0 : _GEN_615; // @[AluDecoder.scala 384:45 410:11]
  wire [3:0] _GEN_643 = 32'h7a000000 == _T_52 ? io_instr[15:12] : _GEN_617; // @[AluDecoder.scala 384:45 412:12]
  wire [31:0] _T_108 = io_instr & 32'h7fe0fc1f; // @[AluDecoder.scala 384:31]
  wire  _GEN_645 = 32'h5a00001f == _T_108 ? 1'h0 : _GEN_619; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_646 = 32'h5a00001f == _T_108 ? 1'h0 : _GEN_620; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_647 = 32'h5a00001f == _T_108 ? 1'h0 : _GEN_621; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_653 = 32'h5a00001f == _T_108 ? 1'h0 : 32'h7a000000 == _T_52 | _GEN_601; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_654 = 32'h5a00001f == _T_108 ? 1'h0 : _GEN_628; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_655 = 32'h5a00001f == _T_108 ? 1'h0 : _GEN_629; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_661 = 32'h5a00001f == _T_108 ? io_instr[31] : _GEN_635; // @[AluDecoder.scala 384:45 404:10]
  wire [5:0] _GEN_664 = 32'h5a00001f == _T_108 ? 6'h0 : _GEN_638; // @[AluDecoder.scala 384:45 407:12]
  wire [1:0] _GEN_667 = 32'h5a00001f == _T_108 ? 2'h0 : _GEN_641; // @[AluDecoder.scala 384:45 410:11]
  wire [3:0] _GEN_669 = 32'h5a00001f == _T_108 ? io_instr[15:12] : _GEN_643; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_671 = 32'h7a00001f == _T_108 ? 1'h0 : _GEN_645; // @[AluDecoder.scala 384:45 387:18]
  wire  _GEN_672 = 32'h7a00001f == _T_108 ? 1'h0 : _GEN_646; // @[AluDecoder.scala 384:45 388:21]
  wire  _GEN_673 = 32'h7a00001f == _T_108 ? 1'h0 : _GEN_647; // @[AluDecoder.scala 384:45 389:21]
  wire  _GEN_675 = 32'h7a00001f == _T_108 | (32'h5a00001f == _T_108 | (32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 |
    (32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | _GEN_519))))); // @[AluDecoder.scala 384:45 391:14]
  wire  _GEN_678 = 32'h7a00001f == _T_108 | (32'h5a00001f == _T_108 | (32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 |
    _GEN_572))); // @[AluDecoder.scala 384:45 394:20]
  wire  _GEN_679 = 32'h7a00001f == _T_108 | _GEN_653; // @[AluDecoder.scala 384:45 395:18]
  wire  _GEN_680 = 32'h7a00001f == _T_108 ? 1'h0 : _GEN_654; // @[AluDecoder.scala 384:45 396:20]
  wire  _GEN_681 = 32'h7a00001f == _T_108 ? 1'h0 : _GEN_655; // @[AluDecoder.scala 384:45 397:18]
  wire  _GEN_685 = 32'h7a00001f == _T_108 | (32'h5a00001f == _T_108 | _GEN_633); // @[AluDecoder.scala 384:45 402:20]
  wire  _GEN_686 = 32'h7a00001f == _T_108 | (32'h5a00001f == _T_108 | (32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 |
    _GEN_582))); // @[AluDecoder.scala 384:45 403:17]
  wire  _GEN_687 = 32'h7a00001f == _T_108 ? io_instr[31] : _GEN_661; // @[AluDecoder.scala 384:45 404:10]
  wire [5:0] _GEN_690 = 32'h7a00001f == _T_108 ? 6'h0 : _GEN_664; // @[AluDecoder.scala 384:45 407:12]
  wire [1:0] _GEN_693 = 32'h7a00001f == _T_108 ? 2'h0 : _GEN_667; // @[AluDecoder.scala 384:45 410:11]
  wire [3:0] _GEN_695 = 32'h7a00001f == _T_108 ? io_instr[15:12] : _GEN_669; // @[AluDecoder.scala 384:45 412:12]
  wire  _GEN_697 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_671; // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_698 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_672; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_699 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_673; // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_704 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_679; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_705 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_680; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_706 = 32'h12000000 == _T_58 ? 1'h0 : _GEN_681; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_707 = 32'h12000000 == _T_58 ? io_instr[31] : _GEN_687; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_708 = 32'h12000000 == _T_58 ? 6'h0 : _GEN_690; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_709 = 32'h12000000 == _T_58 ? io_instr[15:10] : 6'h0; // @[AluDecoder.scala 418:46 442:13 139:9]
  wire [5:0] _GEN_710 = 32'h12000000 == _T_58 ? io_instr[21:16] : 6'h0; // @[AluDecoder.scala 418:46 443:13 140:9]
  wire  _GEN_711 = 32'h12000000 == _T_58 & io_instr[22]; // @[AluDecoder.scala 418:46 444:12 141:8]
  wire [1:0] _GEN_712 = 32'h12000000 == _T_58 ? 2'h0 : _GEN_693; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_713 = 32'ha000000 == _T_60 ? 1'h0 : 32'h12000000 == _T_58; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_715 = 32'ha000000 == _T_60 ? 1'h0 : _GEN_698; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_718 = 32'ha000000 == _T_60 ? _T : 32'h12000000 == _T_58; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_721 = 32'ha000000 == _T_60 ? _T : 32'h12000000 == _T_58 | _GEN_678; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_722 = 32'ha000000 == _T_60 ? 1'h0 : _GEN_704; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_723 = 32'ha000000 == _T_60 ? long : _GEN_705; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_724 = 32'ha000000 == _T_60 ? 1'h0 : _GEN_706; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_727 = 32'ha000000 == _T_60 ? io_instr[31] : _GEN_707; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_728 = 32'ha000000 == _T_60 ? io_instr[15:10] : _GEN_708; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_729 = 32'ha000000 == _T_60 ? 6'h0 : _GEN_709; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_730 = 32'ha000000 == _T_60 ? 6'h0 : _GEN_710; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_731 = 32'ha000000 == _T_60 ? 1'h0 : _GEN_711; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_732 = 32'ha000000 == _T_60 ? io_instr[23:22] : _GEN_712; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_734 = 32'h72000000 == _T_58 ? 1'h0 : 32'ha000000 == _T_60 | _GEN_697; // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_735 = 32'h72000000 == _T_58 ? 1'h0 : _GEN_715; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_736 = 32'h72000000 == _T_58 ? 1'h0 : 32'ha000000 == _T_60 | _GEN_699; // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_740 = 32'h72000000 == _T_58 ? 1'h0 : 32'ha000000 == _T_60 & long; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_743 = 32'h72000000 == _T_58 ? 1'h0 : _GEN_723; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_744 = 32'h72000000 == _T_58 ? 1'h0 : _GEN_724; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_746 = 32'h72000000 == _T_58 ? 1'h0 : 32'ha000000 == _T_60; // @[AluDecoder.scala 418:46 437:26]
  wire  _GEN_747 = 32'h72000000 == _T_58 ? io_instr[31] : _GEN_727; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_748 = 32'h72000000 == _T_58 ? 6'h0 : _GEN_728; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_749 = 32'h72000000 == _T_58 ? io_instr[15:10] : _GEN_729; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_750 = 32'h72000000 == _T_58 ? io_instr[21:16] : _GEN_730; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_751 = 32'h72000000 == _T_58 ? io_instr[22] : _GEN_731; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_752 = 32'h72000000 == _T_58 ? 2'h0 : _GEN_732; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_753 = 32'h6a000000 == _T_60 ? 1'h0 : 32'h72000000 == _T_58 | _GEN_713; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_755 = 32'h6a000000 == _T_60 ? 1'h0 : _GEN_735; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_758 = 32'h6a000000 == _T_60 ? _T : 32'h72000000 == _T_58 | _GEN_718; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_760 = 32'h6a000000 == _T_60 ? long : _GEN_740; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_761 = 32'h6a000000 == _T_60 ? _T : 32'h72000000 == _T_58 | _GEN_721; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_762 = 32'h6a000000 == _T_60 ? _T : 32'h72000000 == _T_58 | _GEN_722; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_763 = 32'h6a000000 == _T_60 ? long : _GEN_743; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_764 = 32'h6a000000 == _T_60 ? long : _GEN_744; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_767 = 32'h6a000000 == _T_60 ? io_instr[31] : _GEN_747; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_768 = 32'h6a000000 == _T_60 ? io_instr[15:10] : _GEN_748; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_769 = 32'h6a000000 == _T_60 ? 6'h0 : _GEN_749; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_770 = 32'h6a000000 == _T_60 ? 6'h0 : _GEN_750; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_771 = 32'h6a000000 == _T_60 ? 1'h0 : _GEN_751; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_772 = 32'h6a000000 == _T_60 ? io_instr[23:22] : _GEN_752; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_773 = 32'ha200000 == _T_60 ? 1'h0 : _GEN_753; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_775 = 32'ha200000 == _T_60 ? 1'h0 : _GEN_755; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_778 = 32'ha200000 == _T_60 ? _T : _GEN_758; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_780 = 32'ha200000 == _T_60 ? long : _GEN_760; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_781 = 32'ha200000 == _T_60 ? _T : _GEN_761; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_782 = 32'ha200000 == _T_60 ? 1'h0 : _GEN_762; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_783 = 32'ha200000 == _T_60 ? long : _GEN_763; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_784 = 32'ha200000 == _T_60 ? 1'h0 : _GEN_764; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_788 = 32'ha200000 == _T_60 ? io_instr[31] : _GEN_767; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_789 = 32'ha200000 == _T_60 ? io_instr[15:10] : _GEN_768; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_790 = 32'ha200000 == _T_60 ? 6'h0 : _GEN_769; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_791 = 32'ha200000 == _T_60 ? 6'h0 : _GEN_770; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_792 = 32'ha200000 == _T_60 ? 1'h0 : _GEN_771; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_793 = 32'ha200000 == _T_60 ? io_instr[23:22] : _GEN_772; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_794 = 32'h6a200000 == _T_60 ? 1'h0 : _GEN_773; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_796 = 32'h6a200000 == _T_60 ? 1'h0 : _GEN_775; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_799 = 32'h6a200000 == _T_60 ? _T : _GEN_778; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_801 = 32'h6a200000 == _T_60 ? long : _GEN_780; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_802 = 32'h6a200000 == _T_60 ? _T : _GEN_781; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_803 = 32'h6a200000 == _T_60 ? _T : _GEN_782; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_804 = 32'h6a200000 == _T_60 ? long : _GEN_783; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_805 = 32'h6a200000 == _T_60 ? long : _GEN_784; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_809 = 32'h6a200000 == _T_60 ? io_instr[31] : _GEN_788; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_810 = 32'h6a200000 == _T_60 ? io_instr[15:10] : _GEN_789; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_811 = 32'h6a200000 == _T_60 ? 6'h0 : _GEN_790; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_812 = 32'h6a200000 == _T_60 ? 6'h0 : _GEN_791; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_813 = 32'h6a200000 == _T_60 ? 1'h0 : _GEN_792; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_814 = 32'h6a200000 == _T_60 ? io_instr[23:22] : _GEN_793; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_816 = 32'h32000000 == _T_58 ? 1'h0 : 32'h6a200000 == _T_60 | (32'ha200000 == _T_60 | (32'h6a000000 == _T_60
     | _GEN_734)); // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_817 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_796; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_818 = 32'h32000000 == _T_58 ? 1'h0 : 32'h6a200000 == _T_60 | (32'ha200000 == _T_60 | (32'h6a000000 == _T_60
     | _GEN_736)); // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_820 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_799; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_823 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_801; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_825 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_803; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_826 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_804; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_827 = 32'h32000000 == _T_58 ? 1'h0 : _GEN_805; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_829 = 32'h32000000 == _T_58 ? 1'h0 : 32'h6a200000 == _T_60 | (32'ha200000 == _T_60 | (32'h6a000000 == _T_60
     | _GEN_746)); // @[AluDecoder.scala 418:46 437:26]
  wire  _GEN_830 = 32'h32000000 == _T_58 ? 1'h0 : 32'h6a200000 == _T_60 | 32'ha200000 == _T_60; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_831 = 32'h32000000 == _T_58 ? io_instr[31] : _GEN_809; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_832 = 32'h32000000 == _T_58 ? 6'h0 : _GEN_810; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_833 = 32'h32000000 == _T_58 ? io_instr[15:10] : _GEN_811; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_834 = 32'h32000000 == _T_58 ? io_instr[21:16] : _GEN_812; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_835 = 32'h32000000 == _T_58 ? io_instr[22] : _GEN_813; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_836 = 32'h32000000 == _T_58 ? 2'h0 : _GEN_814; // @[AluDecoder.scala 418:46 445:11]
  wire [31:0] _T_126 = io_instr & 32'h7f8003e0; // @[AluDecoder.scala 418:32]
  wire  _GEN_838 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_816; // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_839 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_817; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_840 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_818; // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_842 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_820; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_845 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_823; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_847 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_825; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_848 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_826; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_849 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_827; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_850 = 32'h320003e0 == _T_126 ? 1'h0 : 32'h32000000 == _T_58 | (32'h6a200000 == _T_60 | (32'ha200000 ==
    _T_60 | (32'h6a000000 == _T_60 | (32'h72000000 == _T_58 | (32'ha000000 == _T_60 | 32'h12000000 == _T_58))))); // @[AluDecoder.scala 418:46 435:18]
  wire  _GEN_851 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_829; // @[AluDecoder.scala 418:46 437:26]
  wire  _GEN_852 = 32'h320003e0 == _T_126 ? 1'h0 : _GEN_830; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_853 = 32'h320003e0 == _T_126 ? io_instr[31] : _GEN_831; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_854 = 32'h320003e0 == _T_126 ? 6'h0 : _GEN_832; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_855 = 32'h320003e0 == _T_126 ? io_instr[15:10] : _GEN_833; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_856 = 32'h320003e0 == _T_126 ? io_instr[21:16] : _GEN_834; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_857 = 32'h320003e0 == _T_126 ? io_instr[22] : _GEN_835; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_858 = 32'h320003e0 == _T_126 ? 2'h0 : _GEN_836; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_859 = 32'h2a000000 == _T_60 ? 1'h0 : 32'h320003e0 == _T_126 | (32'h32000000 == _T_58 | _GEN_794); // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_861 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_839; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_864 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_842; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_865 = 32'h2a000000 == _T_60 ? _T : 32'h320003e0 == _T_126 | 32'h32000000 == _T_58; // @[AluDecoder.scala 418:46 426:14]
  wire  _GEN_867 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_845; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_869 = 32'h2a000000 == _T_60 ? _T : 32'h320003e0 == _T_126 | (32'h32000000 == _T_58 | _GEN_802); // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_870 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_847; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_871 = 32'h2a000000 == _T_60 ? long : _GEN_848; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_872 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_849; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_875 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_852; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_876 = 32'h2a000000 == _T_60 ? io_instr[31] : _GEN_853; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_877 = 32'h2a000000 == _T_60 ? io_instr[15:10] : _GEN_854; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_878 = 32'h2a000000 == _T_60 ? 6'h0 : _GEN_855; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_879 = 32'h2a000000 == _T_60 ? 6'h0 : _GEN_856; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_880 = 32'h2a000000 == _T_60 ? 1'h0 : _GEN_857; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_881 = 32'h2a000000 == _T_60 ? io_instr[23:22] : _GEN_858; // @[AluDecoder.scala 418:46 445:11]
  wire [31:0] _T_130 = io_instr & 32'h7fe0ffe0; // @[AluDecoder.scala 418:32]
  wire  _GEN_882 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_859; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_884 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_861; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_887 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_864; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_888 = 32'h2a0003e0 == _T_130 ? _T : _GEN_865; // @[AluDecoder.scala 418:46 426:14]
  wire  _GEN_890 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_867; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_891 = 32'h2a0003e0 == _T_130 ? long : 32'h2a000000 == _T_60 & long; // @[AluDecoder.scala 418:46 429:14]
  wire  _GEN_892 = 32'h2a0003e0 == _T_130 ? _T : _GEN_869; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_893 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_870; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_894 = 32'h2a0003e0 == _T_130 ? long : _GEN_871; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_895 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_872; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_896 = 32'h2a0003e0 == _T_130 ? 1'h0 : 32'h2a000000 == _T_60 | _GEN_850; // @[AluDecoder.scala 418:46 435:18]
  wire  _GEN_898 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_875; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_899 = 32'h2a0003e0 == _T_130 ? io_instr[31] : _GEN_876; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_900 = 32'h2a0003e0 == _T_130 ? io_instr[15:10] : _GEN_877; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_901 = 32'h2a0003e0 == _T_130 ? 6'h0 : _GEN_878; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_902 = 32'h2a0003e0 == _T_130 ? 6'h0 : _GEN_879; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_903 = 32'h2a0003e0 == _T_130 ? 1'h0 : _GEN_880; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_904 = 32'h2a0003e0 == _T_130 ? io_instr[23:22] : _GEN_881; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_905 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_882; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_907 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_884; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_910 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_887; // @[AluDecoder.scala 418:46 425:15]
  wire  _GEN_911 = 32'h2a200000 == _T_60 ? _T : _GEN_888; // @[AluDecoder.scala 418:46 426:14]
  wire  _GEN_913 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_890; // @[AluDecoder.scala 418:46 428:15]
  wire  _GEN_914 = 32'h2a200000 == _T_60 ? long : _GEN_891; // @[AluDecoder.scala 418:46 429:14]
  wire  _GEN_915 = 32'h2a200000 == _T_60 ? _T : _GEN_892; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_916 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_893; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_917 = 32'h2a200000 == _T_60 ? long : _GEN_894; // @[AluDecoder.scala 418:46 433:20]
  wire  _GEN_918 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_895; // @[AluDecoder.scala 418:46 434:18]
  wire  _GEN_922 = 32'h2a200000 == _T_60 ? io_instr[31] : _GEN_899; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_923 = 32'h2a200000 == _T_60 ? io_instr[15:10] : _GEN_900; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_924 = 32'h2a200000 == _T_60 ? 6'h0 : _GEN_901; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_925 = 32'h2a200000 == _T_60 ? 6'h0 : _GEN_902; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_926 = 32'h2a200000 == _T_60 ? 1'h0 : _GEN_903; // @[AluDecoder.scala 418:46 444:12]
  wire [1:0] _GEN_927 = 32'h2a200000 == _T_60 ? io_instr[23:22] : _GEN_904; // @[AluDecoder.scala 418:46 445:11]
  wire  _GEN_929 = 32'h52000000 == _T_58 ? 1'h0 : 32'h2a200000 == _T_60 | (32'h2a0003e0 == _T_130 | (32'h2a000000 ==
    _T_60 | _GEN_838)); // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_930 = 32'h52000000 == _T_58 ? 1'h0 : _GEN_907; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_931 = 32'h52000000 == _T_58 ? 1'h0 : 32'h2a200000 == _T_60 | (32'h2a0003e0 == _T_130 | (32'h2a000000 ==
    _T_60 | _GEN_840)); // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_940 = 32'h52000000 == _T_58 ? 1'h0 : _GEN_916; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_944 = 32'h52000000 == _T_58 ? 1'h0 : 32'h2a200000 == _T_60 | (32'h2a0003e0 == _T_130 | (32'h2a000000 ==
    _T_60 | _GEN_851)); // @[AluDecoder.scala 418:46 437:26]
  wire  _GEN_945 = 32'h52000000 == _T_58 ? 1'h0 : 32'h2a200000 == _T_60 | _GEN_898; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_946 = 32'h52000000 == _T_58 ? io_instr[31] : _GEN_922; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_947 = 32'h52000000 == _T_58 ? 6'h0 : _GEN_923; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_948 = 32'h52000000 == _T_58 ? io_instr[15:10] : _GEN_924; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_949 = 32'h52000000 == _T_58 ? io_instr[21:16] : _GEN_925; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_950 = 32'h52000000 == _T_58 ? io_instr[22] : _GEN_926; // @[AluDecoder.scala 418:46 444:12]
  wire  _GEN_952 = 32'h4a000000 == _T_60 ? 1'h0 : 32'h52000000 == _T_58 | _GEN_905; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_954 = 32'h4a000000 == _T_60 ? 1'h0 : _GEN_930; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_963 = 32'h4a000000 == _T_60 ? _T : 32'h52000000 == _T_58 | _GEN_915; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_964 = 32'h4a000000 == _T_60 ? 1'h0 : _GEN_940; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_970 = 32'h4a000000 == _T_60 ? 1'h0 : _GEN_945; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_971 = 32'h4a000000 == _T_60 ? io_instr[31] : _GEN_946; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_972 = 32'h4a000000 == _T_60 ? io_instr[15:10] : _GEN_947; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_973 = 32'h4a000000 == _T_60 ? 6'h0 : _GEN_948; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_974 = 32'h4a000000 == _T_60 ? 6'h0 : _GEN_949; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_975 = 32'h4a000000 == _T_60 ? 1'h0 : _GEN_950; // @[AluDecoder.scala 418:46 444:12]
  wire  _GEN_977 = 32'h4a200000 == _T_60 ? 1'h0 : _GEN_952; // @[AluDecoder.scala 418:46 420:17]
  wire  _GEN_978 = 32'h4a200000 == _T_60 | (32'h4a000000 == _T_60 | _GEN_929); // @[AluDecoder.scala 418:46 421:18]
  wire  _GEN_979 = 32'h4a200000 == _T_60 ? 1'h0 : _GEN_954; // @[AluDecoder.scala 418:46 422:21]
  wire  _GEN_980 = 32'h4a200000 == _T_60 | (32'h4a000000 == _T_60 | _GEN_931); // @[AluDecoder.scala 418:46 423:21]
  wire  _GEN_988 = 32'h4a200000 == _T_60 ? _T : _GEN_963; // @[AluDecoder.scala 418:46 431:20]
  wire  _GEN_989 = 32'h4a200000 == _T_60 ? 1'h0 : _GEN_964; // @[AluDecoder.scala 418:46 432:18]
  wire  _GEN_992 = 32'h4a200000 == _T_60 | (32'h4a000000 == _T_60 | (32'h52000000 == _T_58 | (32'h2a200000 == _T_60 |
    _GEN_896))); // @[AluDecoder.scala 418:46 435:18]
  wire  _GEN_993 = 32'h4a200000 == _T_60 | (32'h4a000000 == _T_60 | _GEN_944); // @[AluDecoder.scala 418:46 437:26]
  wire  _GEN_995 = 32'h4a200000 == _T_60 | _GEN_970; // @[AluDecoder.scala 418:46 439:21]
  wire  _GEN_996 = 32'h4a200000 == _T_60 ? io_instr[31] : _GEN_971; // @[AluDecoder.scala 418:46 440:10]
  wire [5:0] _GEN_997 = 32'h4a200000 == _T_60 ? io_instr[15:10] : _GEN_972; // @[AluDecoder.scala 418:46 441:12]
  wire [5:0] _GEN_998 = 32'h4a200000 == _T_60 ? 6'h0 : _GEN_973; // @[AluDecoder.scala 418:46 442:13]
  wire [5:0] _GEN_999 = 32'h4a200000 == _T_60 ? 6'h0 : _GEN_974; // @[AluDecoder.scala 418:46 443:13]
  wire  _GEN_1000 = 32'h4a200000 == _T_60 ? 1'h0 : _GEN_975; // @[AluDecoder.scala 418:46 444:12]
  wire  _GEN_1004 = 32'h1ac02000 == _T_52 ? 1'h0 : _GEN_979; // @[AluDecoder.scala 450:46 454:21]
  wire  _GEN_1008 = 32'h1ac02000 == _T_52 ? 1'h0 : _GEN_989; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1009 = 32'h1ac02000 == _T_52 ? 1'h0 : long; // @[AluDecoder.scala 262:21 450:46 460:25]
  wire [1:0] _GEN_1010 = 32'h1ac02000 == _T_52 ? io_instr[11:10] : 2'h0; // @[AluDecoder.scala 450:46 461:11 146:7]
  wire  _GEN_1011 = 32'h1ac02000 == _T_52 ? io_instr[31] : _GEN_996; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1014 = 32'h1ac02000 == _T_52 ? 1'h0 : _GEN_1004; // @[AluDecoder.scala 450:46 454:21]
  wire  _GEN_1018 = 32'h1ac02000 == _T_52 ? 1'h0 : _GEN_1008; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1019 = 32'h1ac02000 == _T_52 ? 1'h0 : _GEN_1009; // @[AluDecoder.scala 450:46 460:25]
  wire [1:0] _GEN_1020 = 32'h1ac02000 == _T_52 ? io_instr[11:10] : _GEN_1010; // @[AluDecoder.scala 450:46 461:11]
  wire  _GEN_1021 = 32'h1ac02000 == _T_52 ? io_instr[31] : _GEN_1011; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1024 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1014; // @[AluDecoder.scala 450:46 454:21]
  wire  _GEN_1028 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1018; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1029 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1019; // @[AluDecoder.scala 450:46 460:25]
  wire [1:0] _GEN_1030 = 32'h1ac02400 == _T_52 ? io_instr[11:10] : _GEN_1020; // @[AluDecoder.scala 450:46 461:11]
  wire  _GEN_1031 = 32'h1ac02400 == _T_52 ? io_instr[31] : _GEN_1021; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1034 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1024; // @[AluDecoder.scala 450:46 454:21]
  wire  _GEN_1038 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1028; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1039 = 32'h1ac02400 == _T_52 ? 1'h0 : _GEN_1029; // @[AluDecoder.scala 450:46 460:25]
  wire [1:0] _GEN_1040 = 32'h1ac02400 == _T_52 ? io_instr[11:10] : _GEN_1030; // @[AluDecoder.scala 450:46 461:11]
  wire  _GEN_1041 = 32'h1ac02400 == _T_52 ? io_instr[31] : _GEN_1031; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1044 = 32'h1ac02800 == _T_52 ? 1'h0 : _GEN_1034; // @[AluDecoder.scala 450:46 454:21]
  wire  _GEN_1048 = 32'h1ac02800 == _T_52 ? 1'h0 : _GEN_1038; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1049 = 32'h1ac02800 == _T_52 ? 1'h0 : _GEN_1039; // @[AluDecoder.scala 450:46 460:25]
  wire [1:0] _GEN_1050 = 32'h1ac02800 == _T_52 ? io_instr[11:10] : _GEN_1040; // @[AluDecoder.scala 450:46 461:11]
  wire  _GEN_1051 = 32'h1ac02800 == _T_52 ? io_instr[31] : _GEN_1041; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1058 = 32'h1ac02800 == _T_52 ? 1'h0 : _GEN_1048; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1061 = 32'h1ac02800 == _T_52 ? io_instr[31] : _GEN_1051; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1068 = 32'h1ac02c00 == _T_52 ? 1'h0 : _GEN_1058; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1071 = 32'h1ac02c00 == _T_52 ? io_instr[31] : _GEN_1061; // @[AluDecoder.scala 450:46 462:10]
  wire  _GEN_1072 = 32'h1ac02c00 == _T_52 | (32'h1ac02c00 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02400
     == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02000 == _T_52 | (32'h1ac02000 == _T_52 | _GEN_977))))))); // @[AluDecoder.scala 450:46 452:17]
  wire  wrShiftP0En = 32'h1ac02c00 == _T_52 | (32'h1ac02c00 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02800 == _T_52
     | (32'h1ac02400 == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02000 == _T_52 | 32'h1ac02000 == _T_52)))))); // @[AluDecoder.scala 450:46 453:20]
  wire  _GEN_1075 = 32'h1ac02c00 == _T_52 | (32'h1ac02c00 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02400
     == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02000 == _T_52 | (32'h1ac02000 == _T_52 | _GEN_980))))))); // @[AluDecoder.scala 450:46 455:21]
  wire  _GEN_1077 = 32'h1ac02c00 == _T_52 | (32'h1ac02c00 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02400
     == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02000 == _T_52 | (32'h1ac02000 == _T_52 | _GEN_988))))))); // @[AluDecoder.scala 450:46 457:20]
  wire  _GEN_1078 = 32'h1ac02c00 == _T_52 ? 1'h0 : _GEN_1068; // @[AluDecoder.scala 450:46 458:18]
  wire  _GEN_1081 = 32'h1ac02c00 == _T_52 ? io_instr[31] : _GEN_1071; // @[AluDecoder.scala 450:46 462:10]
  wire [31:0] _T_156 = io_instr & 32'h7ffffc00; // @[AluDecoder.scala 467:30]
  wire [1:0] _GEN_1083 = 32'h11000000 == _T_156 ? io_instr[22:21] : 2'h0; // @[AluDecoder.scala 467:44 470:10 144:6]
  wire  _GEN_1084 = 32'h11000000 == _T_156 ? io_instr[31] : _GEN_1081; // @[AluDecoder.scala 467:44 471:10]
  wire [15:0] _GEN_1085 = 32'h11000000 == _T_156 ? io_instr[20:5] : 16'h0; // @[AluDecoder.scala 467:44 472:13 138:9]
  wire [1:0] _GEN_1086 = 32'h12800000 == _T_58 ? 2'h2 : {{1'd0}, 32'h11000000 == _T_156}; // @[AluDecoder.scala 467:44 469:16]
  wire [1:0] _GEN_1087 = 32'h12800000 == _T_58 ? io_instr[22:21] : _GEN_1083; // @[AluDecoder.scala 467:44 470:10]
  wire  _GEN_1088 = 32'h12800000 == _T_58 ? io_instr[31] : _GEN_1084; // @[AluDecoder.scala 467:44 471:10]
  wire [15:0] _GEN_1089 = 32'h12800000 == _T_58 ? io_instr[20:5] : _GEN_1085; // @[AluDecoder.scala 467:44 472:13]
  wire [1:0] _GEN_1090 = 32'h52800000 == _T_58 ? 2'h3 : _GEN_1086; // @[AluDecoder.scala 467:44 469:16]
  wire [1:0] _GEN_1091 = 32'h52800000 == _T_58 ? io_instr[22:21] : _GEN_1087; // @[AluDecoder.scala 467:44 470:10]
  wire  _GEN_1092 = 32'h52800000 == _T_58 ? io_instr[31] : _GEN_1088; // @[AluDecoder.scala 467:44 471:10]
  wire [15:0] _GEN_1093 = 32'h52800000 == _T_58 ? io_instr[20:5] : _GEN_1089; // @[AluDecoder.scala 467:44 472:13]
  wire  _GEN_1096 = 32'h72800000 == _T_58 ? io_instr[31] : _GEN_1092; // @[AluDecoder.scala 467:44 471:10]
  wire  _GEN_1100 = 32'h12800000 == _T_58 ? io_instr[31] : _GEN_1096; // @[AluDecoder.scala 467:44 471:10]
  wire  _GEN_1104 = 32'h52800000 == _T_58 ? io_instr[31] : _GEN_1100; // @[AluDecoder.scala 467:44 471:10]
  wire  _GEN_1108 = 32'h13000000 == _T_58 ? io_instr[31] : _GEN_1104; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1109 = 32'h13000000 == _T_58 ? io_instr[15:10] : _GEN_998; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1110 = 32'h13000000 == _T_58 ? io_instr[21:16] : _GEN_999; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1111 = 32'h13000000 == _T_58 ? io_instr[22] : _GEN_1000; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1114 = 32'h13000000 == _T_58 ? io_instr[31] : _GEN_1108; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1115 = 32'h13000000 == _T_58 ? io_instr[15:10] : _GEN_1109; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1116 = 32'h13000000 == _T_58 ? io_instr[21:16] : _GEN_1110; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1117 = 32'h13000000 == _T_58 ? io_instr[22] : _GEN_1111; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1120 = 32'h13000000 == _T_58 ? io_instr[31] : _GEN_1114; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1121 = 32'h13000000 == _T_58 ? io_instr[15:10] : _GEN_1115; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1122 = 32'h13000000 == _T_58 ? io_instr[21:16] : _GEN_1116; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1123 = 32'h13000000 == _T_58 ? io_instr[22] : _GEN_1117; // @[AluDecoder.scala 477:44 486:12]
  wire [31:0] _T_174 = io_instr & 32'h7f807c00; // @[AluDecoder.scala 477:30]
  wire  _GEN_1126 = 32'h13007c00 == _T_174 ? io_instr[31] : _GEN_1120; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1127 = 32'h13007c00 == _T_174 ? io_instr[15:10] : _GEN_1121; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1128 = 32'h13007c00 == _T_174 ? io_instr[21:16] : _GEN_1122; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1129 = 32'h13007c00 == _T_174 ? io_instr[22] : _GEN_1123; // @[AluDecoder.scala 477:44 486:12]
  wire [31:0] _T_176 = io_instr & 32'h7fbffc00; // @[AluDecoder.scala 477:30]
  wire  _GEN_1132 = 32'h13001c00 == _T_176 ? io_instr[31] : _GEN_1126; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1133 = 32'h13001c00 == _T_176 ? io_instr[15:10] : _GEN_1127; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1134 = 32'h13001c00 == _T_176 ? io_instr[21:16] : _GEN_1128; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1135 = 32'h13001c00 == _T_176 ? io_instr[22] : _GEN_1129; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1138 = 32'h13003c00 == _T_176 ? io_instr[31] : _GEN_1132; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1139 = 32'h13003c00 == _T_176 ? io_instr[15:10] : _GEN_1133; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1140 = 32'h13003c00 == _T_176 ? io_instr[21:16] : _GEN_1134; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1141 = 32'h13003c00 == _T_176 ? io_instr[22] : _GEN_1135; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1143 = 32'h13007c00 == _T_176 | (32'h13003c00 == _T_176 | (32'h13001c00 == _T_176 | (32'h13007c00 == _T_174
     | (32'h13000000 == _T_58 | (32'h13000000 == _T_58 | 32'h13000000 == _T_58))))); // @[AluDecoder.scala 477:44 480:13]
  wire  _GEN_1144 = 32'h13007c00 == _T_176 ? io_instr[31] : _GEN_1138; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1145 = 32'h13007c00 == _T_176 ? io_instr[15:10] : _GEN_1139; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1146 = 32'h13007c00 == _T_176 ? io_instr[21:16] : _GEN_1140; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1147 = 32'h13007c00 == _T_176 ? io_instr[22] : _GEN_1141; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1150 = 32'h53000000 == _T_58 ? 1'h0 : _GEN_1143; // @[AluDecoder.scala 477:44 481:15]
  wire  _GEN_1151 = 32'h53000000 == _T_58 ? io_instr[31] : _GEN_1144; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1152 = 32'h53000000 == _T_58 ? io_instr[15:10] : _GEN_1145; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1153 = 32'h53000000 == _T_58 ? io_instr[21:16] : _GEN_1146; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1154 = 32'h53000000 == _T_58 ? io_instr[22] : _GEN_1147; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1157 = 32'h53000000 == _T_58 ? 1'h0 : _GEN_1150; // @[AluDecoder.scala 477:44 481:15]
  wire  _GEN_1158 = 32'h53000000 == _T_58 ? io_instr[31] : _GEN_1151; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1159 = 32'h53000000 == _T_58 ? io_instr[15:10] : _GEN_1152; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1160 = 32'h53000000 == _T_58 ? io_instr[21:16] : _GEN_1153; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1161 = 32'h53000000 == _T_58 ? io_instr[22] : _GEN_1154; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1164 = 32'h53000000 == _T_58 ? 1'h0 : _GEN_1157; // @[AluDecoder.scala 477:44 481:15]
  wire  _GEN_1165 = 32'h53000000 == _T_58 ? io_instr[31] : _GEN_1158; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1166 = 32'h53000000 == _T_58 ? io_instr[15:10] : _GEN_1159; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1167 = 32'h53000000 == _T_58 ? io_instr[21:16] : _GEN_1160; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1168 = 32'h53000000 == _T_58 ? io_instr[22] : _GEN_1161; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1171 = 32'h53007c00 == _T_174 ? 1'h0 : _GEN_1164; // @[AluDecoder.scala 477:44 481:15]
  wire  _GEN_1172 = 32'h53007c00 == _T_174 ? io_instr[31] : _GEN_1165; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1173 = 32'h53007c00 == _T_174 ? io_instr[15:10] : _GEN_1166; // @[AluDecoder.scala 477:44 484:13]
  wire [5:0] _GEN_1174 = 32'h53007c00 == _T_174 ? io_instr[21:16] : _GEN_1167; // @[AluDecoder.scala 477:44 485:13]
  wire  _GEN_1175 = 32'h53007c00 == _T_174 ? io_instr[22] : _GEN_1168; // @[AluDecoder.scala 477:44 486:12]
  wire  _GEN_1179 = 32'h53000000 == _T_58 ? io_instr[31] : _GEN_1172; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1180 = 32'h53000000 == _T_58 ? io_instr[15:10] : _GEN_1173; // @[AluDecoder.scala 477:44 484:13]
  wire [31:0] _T_192 = io_instr & 32'hfffffc00; // @[AluDecoder.scala 477:30]
  wire  _GEN_1186 = 32'h53001c00 == _T_192 ? io_instr[31] : _GEN_1179; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1187 = 32'h53001c00 == _T_192 ? io_instr[15:10] : _GEN_1180; // @[AluDecoder.scala 477:44 484:13]
  wire  _GEN_1190 = 32'h53003c00 == _T_192 | (32'h53001c00 == _T_192 | (32'h53000000 == _T_58 | (32'h53007c00 == _T_174
     | (32'h53000000 == _T_58 | (32'h53000000 == _T_58 | (32'h53000000 == _T_58 | (32'h13007c00 == _T_176 | (32'h13003c00
     == _T_176 | (32'h13001c00 == _T_176 | (32'h13007c00 == _T_174 | (32'h13000000 == _T_58 | (32'h13000000 == _T_58 | (32'h13000000
     == _T_58 | _GEN_1072))))))))))))); // @[AluDecoder.scala 477:44 479:17]
  wire  _GEN_1191 = 32'h53003c00 == _T_192 | (32'h53001c00 == _T_192 | (32'h53000000 == _T_58 | (32'h53007c00 == _T_174
     | (32'h53000000 == _T_58 | (32'h53000000 == _T_58 | (32'h53000000 == _T_58 | (32'h13007c00 == _T_176 | (32'h13003c00
     == _T_176 | (32'h13001c00 == _T_176 | (32'h13007c00 == _T_174 | (32'h13000000 == _T_58 | (32'h13000000 == _T_58 | 32'h13000000
     == _T_58)))))))))))); // @[AluDecoder.scala 477:44 480:13]
  wire  _GEN_1193 = 32'h53003c00 == _T_192 ? io_instr[31] : _GEN_1186; // @[AluDecoder.scala 477:44 483:10]
  wire [5:0] _GEN_1194 = 32'h53003c00 == _T_192 ? io_instr[15:10] : _GEN_1187; // @[AluDecoder.scala 477:44 484:13]
  wire  _GEN_1199 = 32'h5ac00000 == _T_156 ? 1'h0 : _GEN_1078; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1200 = 32'h5ac00000 == _T_156 ? 1'h0 : _GEN_675; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1201 = 32'h5ac00000 == _T_156 ? io_instr[31] : _GEN_1193; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1205 = 32'h5ac00000 == _T_156 ? 4'h0 : _GEN_695; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1206 = 32'h5ac00000 == _T_156 ? 6'h0 : _GEN_1194; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1207 = 32'h5ac00000 == _T_156 ? 6'h0 : _GEN_997; // @[AluDecoder.scala 492:45 504:12]
  wire [1:0] _GEN_1208 = 32'hdac00c00 == _T_192 ? 2'h2 : {{1'd0}, 32'h5ac00000 == _T_156}; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1210 = 32'hdac00c00 == _T_192 ? 1'h0 : _GEN_1199; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1211 = 32'hdac00c00 == _T_192 ? 1'h0 : _GEN_1200; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1212 = 32'hdac00c00 == _T_192 ? io_instr[31] : _GEN_1201; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1216 = 32'hdac00c00 == _T_192 ? 4'h0 : _GEN_1205; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1217 = 32'hdac00c00 == _T_192 ? 6'h0 : _GEN_1206; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1218 = 32'hdac00c00 == _T_192 ? 6'h0 : _GEN_1207; // @[AluDecoder.scala 492:45 504:12]
  wire [1:0] _GEN_1219 = 32'h5ac00800 == _T_192 ? 2'h3 : _GEN_1208; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1221 = 32'h5ac00800 == _T_192 ? 1'h0 : _GEN_1210; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1222 = 32'h5ac00800 == _T_192 ? 1'h0 : _GEN_1211; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1223 = 32'h5ac00800 == _T_192 ? io_instr[31] : _GEN_1212; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1227 = 32'h5ac00800 == _T_192 ? 4'h0 : _GEN_1216; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1228 = 32'h5ac00800 == _T_192 ? 6'h0 : _GEN_1217; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1229 = 32'h5ac00800 == _T_192 ? 6'h0 : _GEN_1218; // @[AluDecoder.scala 492:45 504:12]
  wire [2:0] _GEN_1230 = 32'h5ac00400 == _T_156 ? 3'h4 : {{1'd0}, _GEN_1219}; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1232 = 32'h5ac00400 == _T_156 ? 1'h0 : _GEN_1221; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1233 = 32'h5ac00400 == _T_156 ? 1'h0 : _GEN_1222; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1234 = 32'h5ac00400 == _T_156 ? io_instr[31] : _GEN_1223; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1238 = 32'h5ac00400 == _T_156 ? 4'h0 : _GEN_1227; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1239 = 32'h5ac00400 == _T_156 ? 6'h0 : _GEN_1228; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1240 = 32'h5ac00400 == _T_156 ? 6'h0 : _GEN_1229; // @[AluDecoder.scala 492:45 504:12]
  wire [2:0] _GEN_1241 = 32'hdac00800 == _T_192 ? 3'h5 : _GEN_1230; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1243 = 32'hdac00800 == _T_192 ? 1'h0 : _GEN_1232; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1244 = 32'hdac00800 == _T_192 ? 1'h0 : _GEN_1233; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1245 = 32'hdac00800 == _T_192 ? io_instr[31] : _GEN_1234; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1249 = 32'hdac00800 == _T_192 ? 4'h0 : _GEN_1238; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1250 = 32'hdac00800 == _T_192 ? 6'h0 : _GEN_1239; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1251 = 32'hdac00800 == _T_192 ? 6'h0 : _GEN_1240; // @[AluDecoder.scala 492:45 504:12]
  wire [2:0] _GEN_1252 = 32'hdac00c00 == _T_192 ? 3'h6 : _GEN_1241; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1254 = 32'hdac00c00 == _T_192 ? 1'h0 : _GEN_1243; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1255 = 32'hdac00c00 == _T_192 ? 1'h0 : _GEN_1244; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1256 = 32'hdac00c00 == _T_192 ? io_instr[31] : _GEN_1245; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1260 = 32'hdac00c00 == _T_192 ? 4'h0 : _GEN_1249; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1261 = 32'hdac00c00 == _T_192 ? 6'h0 : _GEN_1250; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1262 = 32'hdac00c00 == _T_192 ? 6'h0 : _GEN_1251; // @[AluDecoder.scala 492:45 504:12]
  wire [31:0] _T_208 = io_instr & 32'h7fe00c00; // @[AluDecoder.scala 492:31]
  wire [2:0] _GEN_1263 = 32'h1a800400 == _T_208 ? 3'h7 : _GEN_1252; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1265 = 32'h1a800400 == _T_208 ? 1'h0 : _GEN_1254; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1267 = 32'h1a800400 == _T_208 ? io_instr[31] : _GEN_1256; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1271 = 32'h1a800400 == _T_208 ? io_instr[15:12] : _GEN_1260; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1272 = 32'h1a800400 == _T_208 ? 6'h0 : _GEN_1261; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1273 = 32'h1a800400 == _T_208 ? 6'h0 : _GEN_1262; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1274 = 32'h5a800000 == _T_208 ? 4'h8 : {{1'd0}, _GEN_1263}; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1276 = 32'h5a800000 == _T_208 ? 1'h0 : _GEN_1265; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1278 = 32'h5a800000 == _T_208 ? io_instr[31] : _GEN_1267; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1282 = 32'h5a800000 == _T_208 ? io_instr[15:12] : _GEN_1271; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1283 = 32'h5a800000 == _T_208 ? 6'h0 : _GEN_1272; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1284 = 32'h5a800000 == _T_208 ? 6'h0 : _GEN_1273; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1285 = 32'h1a800400 == _T_208 ? 4'h9 : _GEN_1274; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1287 = 32'h1a800400 == _T_208 ? 1'h0 : _GEN_1276; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1289 = 32'h1a800400 == _T_208 ? io_instr[31] : _GEN_1278; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1293 = 32'h1a800400 == _T_208 ? io_instr[15:12] : _GEN_1282; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1294 = 32'h1a800400 == _T_208 ? 6'h0 : _GEN_1283; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1295 = 32'h1a800400 == _T_208 ? 6'h0 : _GEN_1284; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1296 = 32'h5a800000 == _T_208 ? 4'ha : _GEN_1285; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1298 = 32'h5a800000 == _T_208 ? 1'h0 : _GEN_1287; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1300 = 32'h5a800000 == _T_208 ? io_instr[31] : _GEN_1289; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1304 = 32'h5a800000 == _T_208 ? io_instr[15:12] : _GEN_1293; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1305 = 32'h5a800000 == _T_208 ? 6'h0 : _GEN_1294; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1306 = 32'h5a800000 == _T_208 ? 6'h0 : _GEN_1295; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1307 = 32'h5a800400 == _T_208 ? 4'hb : _GEN_1296; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1309 = 32'h5a800400 == _T_208 ? 1'h0 : _GEN_1298; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1311 = 32'h5a800400 == _T_208 ? io_instr[31] : _GEN_1300; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1315 = 32'h5a800400 == _T_208 ? io_instr[15:12] : _GEN_1304; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1316 = 32'h5a800400 == _T_208 ? 6'h0 : _GEN_1305; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1317 = 32'h5a800400 == _T_208 ? 6'h0 : _GEN_1306; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1318 = 32'h5a800400 == _T_208 ? 4'hc : _GEN_1307; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1320 = 32'h5a800400 == _T_208 ? 1'h0 : _GEN_1309; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1322 = 32'h5a800400 == _T_208 ? io_instr[31] : _GEN_1311; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1326 = 32'h5a800400 == _T_208 ? io_instr[15:12] : _GEN_1315; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1327 = 32'h5a800400 == _T_208 ? 6'h0 : _GEN_1316; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1328 = 32'h5a800400 == _T_208 ? 6'h0 : _GEN_1317; // @[AluDecoder.scala 492:45 504:12]
  wire [31:0] _T_220 = io_instr & 32'h7fff0fe0; // @[AluDecoder.scala 492:31]
  wire [3:0] _GEN_1329 = 32'h1a9f07e0 == _T_220 ? 4'hd : _GEN_1318; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1331 = 32'h1a9f07e0 == _T_220 ? 1'h0 : _GEN_1320; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1333 = 32'h1a9f07e0 == _T_220 ? io_instr[31] : _GEN_1322; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1337 = 32'h1a9f07e0 == _T_220 ? io_instr[15:12] : _GEN_1326; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1338 = 32'h1a9f07e0 == _T_220 ? 6'h0 : _GEN_1327; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1339 = 32'h1a9f07e0 == _T_220 ? 6'h0 : _GEN_1328; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1340 = 32'h1a800000 == _T_208 ? 4'hf : _GEN_1329; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1342 = 32'h1a800000 == _T_208 ? 1'h0 : _GEN_1331; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1344 = 32'h1a800000 == _T_208 ? io_instr[31] : _GEN_1333; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1348 = 32'h1a800000 == _T_208 ? io_instr[15:12] : _GEN_1337; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1349 = 32'h1a800000 == _T_208 ? 6'h0 : _GEN_1338; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1350 = 32'h1a800000 == _T_208 ? 6'h0 : _GEN_1339; // @[AluDecoder.scala 492:45 504:12]
  wire [3:0] _GEN_1351 = 32'h1a9f03e0 == _T_220 ? 4'he : _GEN_1340; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1352 = 32'h1a9f03e0 == _T_220 | (32'h1a800000 == _T_208 | (32'h1a9f07e0 == _T_220 | (32'h5a800400 == _T_208
     | (32'h5a800400 == _T_208 | (32'h5a800000 == _T_208 | (32'h1a800400 == _T_208 | (32'h5a800000 == _T_208 | (32'h1a800400
     == _T_208 | (32'hdac00c00 == _T_192 | (32'hdac00800 == _T_192 | (32'h5ac00400 == _T_156 | (32'h5ac00800 == _T_192
     | (32'hdac00c00 == _T_192 | (32'h5ac00000 == _T_156 | _GEN_1077)))))))))))))); // @[AluDecoder.scala 492:45 495:20]
  wire  _GEN_1353 = 32'h1a9f03e0 == _T_220 ? 1'h0 : _GEN_1342; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1355 = 32'h1a9f03e0 == _T_220 ? io_instr[31] : _GEN_1344; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1359 = 32'h1a9f03e0 == _T_220 ? io_instr[15:12] : _GEN_1348; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1360 = 32'h1a9f03e0 == _T_220 ? 6'h0 : _GEN_1349; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1361 = 32'h1a9f03e0 == _T_220 ? 6'h0 : _GEN_1350; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1362 = 32'h5ac01400 == _T_156 ? 5'h10 : {{1'd0}, _GEN_1351}; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1364 = 32'h5ac01400 == _T_156 ? 1'h0 : _GEN_1353; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1365 = 32'h5ac01400 == _T_156 ? 1'h0 : 32'h1a9f03e0 == _T_220 | (32'h1a800000 == _T_208 | (32'h1a9f07e0 ==
    _T_220 | (32'h5a800400 == _T_208 | (32'h5a800400 == _T_208 | (32'h5a800000 == _T_208 | (32'h1a800400 == _T_208 | (32'h5a800000
     == _T_208 | (32'h1a800400 == _T_208 | _GEN_1255)))))))); // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1366 = 32'h5ac01400 == _T_156 ? io_instr[31] : _GEN_1355; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1370 = 32'h5ac01400 == _T_156 ? 4'h0 : _GEN_1359; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1371 = 32'h5ac01400 == _T_156 ? 6'h0 : _GEN_1360; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1372 = 32'h5ac01400 == _T_156 ? 6'h0 : _GEN_1361; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1373 = 32'h5ac01000 == _T_156 ? 5'h11 : _GEN_1362; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1375 = 32'h5ac01000 == _T_156 ? 1'h0 : _GEN_1364; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1376 = 32'h5ac01000 == _T_156 ? 1'h0 : _GEN_1365; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1377 = 32'h5ac01000 == _T_156 ? io_instr[31] : _GEN_1366; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1381 = 32'h5ac01000 == _T_156 ? 4'h0 : _GEN_1370; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1382 = 32'h5ac01000 == _T_156 ? 6'h0 : _GEN_1371; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1383 = 32'h5ac01000 == _T_156 ? 6'h0 : _GEN_1372; // @[AluDecoder.scala 492:45 504:12]
  wire [31:0] _T_230 = io_instr & 32'h7fa00000; // @[AluDecoder.scala 492:31]
  wire [4:0] _GEN_1384 = 32'h13800000 == _T_230 ? 5'h12 : _GEN_1373; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1386 = 32'h13800000 == _T_230 ? 1'h0 : _GEN_1375; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1387 = 32'h13800000 == _T_230 ? 1'h0 : _GEN_1376; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1388 = 32'h13800000 == _T_230 ? io_instr[31] : _GEN_1377; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1392 = 32'h13800000 == _T_230 ? 4'h0 : _GEN_1381; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1393 = 32'h13800000 == _T_230 ? io_instr[15:10] : _GEN_1382; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1394 = 32'h13800000 == _T_230 ? 6'h0 : _GEN_1383; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1395 = 32'h13800000 == _T_230 ? 5'h13 : _GEN_1384; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1397 = 32'h13800000 == _T_230 ? 1'h0 : _GEN_1386; // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1398 = 32'h13800000 == _T_230 ? 1'h0 : _GEN_1387; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1399 = 32'h13800000 == _T_230 ? io_instr[31] : _GEN_1388; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1403 = 32'h13800000 == _T_230 ? 4'h0 : _GEN_1392; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1404 = 32'h13800000 == _T_230 ? io_instr[15:10] : _GEN_1393; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1405 = 32'h13800000 == _T_230 ? 6'h0 : _GEN_1394; // @[AluDecoder.scala 492:45 504:12]
  wire [31:0] _T_234 = io_instr & 32'hffe07c10; // @[AluDecoder.scala 492:31]
  wire [4:0] _GEN_1406 = 32'hba000400 == _T_234 ? 5'h14 : _GEN_1395; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1407 = 32'hba000400 == _T_234 ? 1'h0 : 32'h13800000 == _T_230 | (32'h13800000 == _T_230 | (32'h5ac01000 ==
    _T_156 | (32'h5ac01400 == _T_156 | _GEN_1352))); // @[AluDecoder.scala 492:45 495:20]
  wire  _GEN_1409 = 32'hba000400 == _T_234 ? 1'h0 : _GEN_1398; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1410 = 32'hba000400 == _T_234 ? io_instr[31] : _GEN_1399; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1411 = 32'hba000400 == _T_234 ? io_instr[3:0] : 4'h0; // @[AluDecoder.scala 492:45 499:15]
  wire [3:0] _GEN_1414 = 32'hba000400 == _T_234 ? 4'h0 : _GEN_1403; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1415 = 32'hba000400 == _T_234 ? 6'h0 : _GEN_1404; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1416 = 32'hba000400 == _T_234 ? io_instr[20:15] : _GEN_1405; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1417 = 32'hd500405f == io_instr ? 5'h15 : _GEN_1406; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1418 = 32'hd500405f == io_instr ? 1'h0 : _GEN_1407; // @[AluDecoder.scala 492:45 495:20]
  wire  _GEN_1420 = 32'hd500405f == io_instr ? 1'h0 : _GEN_1409; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1421 = 32'hd500405f == io_instr ? io_instr[31] : _GEN_1410; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1422 = 32'hd500405f == io_instr ? 4'h0 : _GEN_1411; // @[AluDecoder.scala 492:45 499:15]
  wire [3:0] _GEN_1425 = 32'hd500405f == io_instr ? 4'h0 : _GEN_1414; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1426 = 32'hd500405f == io_instr ? 6'h0 : _GEN_1415; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1427 = 32'hd500405f == io_instr ? 6'h0 : _GEN_1416; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1428 = 32'hd500403f == io_instr ? 5'h16 : _GEN_1417; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1429 = 32'hd500403f == io_instr ? 1'h0 : _GEN_1418; // @[AluDecoder.scala 492:45 495:20]
  wire  _GEN_1431 = 32'hd500403f == io_instr ? 1'h0 : _GEN_1420; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1432 = 32'hd500403f == io_instr ? io_instr[31] : _GEN_1421; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1433 = 32'hd500403f == io_instr ? 4'h0 : _GEN_1422; // @[AluDecoder.scala 492:45 499:15]
  wire [3:0] _GEN_1436 = 32'hd500403f == io_instr ? 4'h0 : _GEN_1425; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1437 = 32'hd500403f == io_instr ? 6'h0 : _GEN_1426; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1438 = 32'hd500403f == io_instr ? 6'h0 : _GEN_1427; // @[AluDecoder.scala 492:45 504:12]
  wire [4:0] _GEN_1439 = 32'hd500401f == io_instr ? 5'h17 : _GEN_1428; // @[AluDecoder.scala 492:45 494:17]
  wire  _GEN_1440 = 32'hd500401f == io_instr ? 1'h0 : _GEN_1429; // @[AluDecoder.scala 492:45 495:20]
  wire  _GEN_1442 = 32'hd500401f == io_instr ? 1'h0 : _GEN_1431; // @[AluDecoder.scala 492:45 497:14]
  wire  _GEN_1443 = 32'hd500401f == io_instr ? io_instr[31] : _GEN_1432; // @[AluDecoder.scala 492:45 498:10]
  wire [3:0] _GEN_1444 = 32'hd500401f == io_instr ? 4'h0 : _GEN_1433; // @[AluDecoder.scala 492:45 499:15]
  wire [3:0] _GEN_1447 = 32'hd500401f == io_instr ? 4'h0 : _GEN_1436; // @[AluDecoder.scala 492:45 502:12]
  wire [5:0] _GEN_1448 = 32'hd500401f == io_instr ? 6'h0 : _GEN_1437; // @[AluDecoder.scala 492:45 503:13]
  wire [5:0] _GEN_1449 = 32'hd500401f == io_instr ? 6'h0 : _GEN_1438; // @[AluDecoder.scala 492:45 504:12]
  wire [31:0] _T_242 = io_instr & 32'h9f000000; // @[AluDecoder.scala 492:31]
  wire  _GEN_1452 = 32'h10000000 == _T_242 ? 1'h0 : 32'hd500401f == io_instr | (32'hd500403f == io_instr | (32'hd500405f
     == io_instr | (32'hba000400 == _T_234 | _GEN_1397))); // @[AluDecoder.scala 492:45 496:18]
  wire  _GEN_1463 = 32'h90000000 == _T_242 ? 1'h0 : _GEN_1452; // @[AluDecoder.scala 492:45 496:18]
  wire  wrResultP0En = 32'hd503201f == io_instr ? 1'h0 : 32'h90000000 == _T_242 | (32'h10000000 == _T_242 | _GEN_1440); // @[AluDecoder.scala 492:45 495:20]
  wire  wrnzcvP0En = 32'hd503201f == io_instr ? 1'h0 : _GEN_1463; // @[AluDecoder.scala 492:45 496:18]
  reg  addrP1EnReg; // @[AluDecoder.scala 508:28]
  reg  andP1EnReg; // @[AluDecoder.scala 509:27]
  reg  orP1EnReg; // @[AluDecoder.scala 510:26]
  reg  xorP1EnReg; // @[AluDecoder.scala 511:27]
  reg  wrResultP1EnReg; // @[AluDecoder.scala 512:32]
  reg  wrnzcvP1EnReg; // @[AluDecoder.scala 513:30]
  wire  _io_intWrEn_wrResultEn_T_2 = addrP1EnReg | andP1EnReg | orP1EnReg | xorP1EnReg; // @[AluDecoder.scala 522:65]
  assign io_calEn_extRegEn = extRegEn; // @[AluDecoder.scala 221:21]
  assign io_calEn_shiftRegEn = shiftRegEn; // @[AluDecoder.scala 222:23]
  assign io_calEn_shiftInstrEn = shiftInstrEn; // @[AluDecoder.scala 223:25]
  assign io_calEn_shiftRegType0 = shiftRegType0; // @[AluDecoder.scala 224:26]
  assign io_calEn_shiftRegType1 = shiftRegType1; // @[AluDecoder.scala 225:26]
  assign io_calEn_shiftRegType1Long = shiftRegType1Long; // @[AluDecoder.scala 226:30]
  assign io_calEn_shiftRegType2 = 1'h0; // @[AluDecoder.scala 227:33]
  assign io_calEn_condEn = condEn; // @[AluDecoder.scala 228:19]
  assign io_calEn_addrP0En = addrP0En; // @[AluDecoder.scala 229:21]
  assign io_calEn_addrP1En = addrP1En; // @[AluDecoder.scala 230:21]
  assign io_calEn_bitMaskEn = bitMaskEn; // @[AluDecoder.scala 231:22]
  assign io_calEn_andP0En = andP0En; // @[AluDecoder.scala 232:20]
  assign io_calEn_andP1En = andP1En; // @[AluDecoder.scala 233:20]
  assign io_calEn_orP0En = orP0En; // @[AluDecoder.scala 234:19]
  assign io_calEn_orP1En = orP1En; // @[AluDecoder.scala 235:19]
  assign io_calEn_xorP0En = xorP0En; // @[AluDecoder.scala 236:20]
  assign io_calEn_xorP1En = xorP1En; // @[AluDecoder.scala 237:20]
  assign io_calEn_movSelEn = movSelEn; // @[AluDecoder.scala 238:21]
  assign io_calEn_bfmEn = bfmEn; // @[AluDecoder.scala 239:18]
  assign io_calEn_bfmSign = bfmSign; // @[AluDecoder.scala 240:20]
  assign io_calEn_miscSelEn = miscSelEn; // @[AluDecoder.scala 241:22]
  assign io_immData_sf = sf; // @[AluDecoder.scala 202:17]
  assign io_immData_imm3 = imm3; // @[AluDecoder.scala 203:19]
  assign io_immData_imm5 = imm5; // @[AluDecoder.scala 204:19]
  assign io_immData_imm6 = imm6; // @[AluDecoder.scala 205:19]
  assign io_immData_imm12 = imm12; // @[AluDecoder.scala 206:20]
  assign io_immData_imm16 = imm16; // @[AluDecoder.scala 207:20]
  assign io_immData_imms6 = imms6; // @[AluDecoder.scala 208:20]
  assign io_immData_immr6 = immr6; // @[AluDecoder.scala 209:20]
  assign io_immData_immN = immN; // @[AluDecoder.scala 210:19]
  assign io_immData_sh1 = sh1; // @[AluDecoder.scala 211:18]
  assign io_immData_sh2 = sh2; // @[AluDecoder.scala 212:18]
  assign io_immData_hw = hw; // @[AluDecoder.scala 213:17]
  assign io_immData_opt = opt; // @[AluDecoder.scala 214:18]
  assign io_immData_op2 = op2; // @[AluDecoder.scala 215:18]
  assign io_immData_cond = cond; // @[AluDecoder.scala 216:19]
  assign io_immData_immMask = immMask; // @[AluDecoder.scala 217:22]
  assign io_immData_immHi = immHi; // @[AluDecoder.scala 218:20]
  assign io_immData_immLo = immLo; // @[AluDecoder.scala 219:20]
  assign io_addrMuxSel_addrOp1En = addrOp1En; // @[AluDecoder.scala 243:27]
  assign io_addrMuxSel_addrOp2ExtRegEn = addrOp2ExtRegEn; // @[AluDecoder.scala 244:33]
  assign io_addrMuxSel_addrOp2ShiftRegEn = addrOp2ShiftRegEn; // @[AluDecoder.scala 245:35]
  assign io_addrMuxSel_addrOp2En = addrOp2En; // @[AluDecoder.scala 246:27]
  assign io_addrMuxSel_addrOp2NotEn = addrOp2NotEn; // @[AluDecoder.scala 247:30]
  assign io_addrMuxSel_addrOp3En = addrOp3En; // @[AluDecoder.scala 248:27]
  assign io_logicMuxSel_logicOp1En = logicOp1En; // @[AluDecoder.scala 250:29]
  assign io_logicMuxSel_logicOp2BitMaskEn = logicOp2BitMaskEn; // @[AluDecoder.scala 251:36]
  assign io_logicMuxSel_logicOp2ShiftRegEn = logicOp2ShiftRegEn; // @[AluDecoder.scala 252:37]
  assign io_logicMuxSel_logicOp2En = 1'h0; // @[AluDecoder.scala 253:29]
  assign io_logicMuxSel_logicOp2NotEn = logicOp2NotEn; // @[AluDecoder.scala 254:32]
  assign io_logicMuxSel_logicOp3En = 1'h0; // @[AluDecoder.scala 255:29]
  assign io_intWrEn_addrWrEn = addrP1EnReg | addrP0En; // @[AluDecoder.scala 516:29]
  assign io_intWrEn_logicWrEn = andP1EnReg | orP1EnReg | xorP1EnReg | (andP0En | orP0En | xorP0En); // @[AluDecoder.scala 517:30]
  assign io_intWrEn_shiftWrEn = 32'h1ac02c00 == _T_52 | (32'h1ac02c00 == _T_52 | (32'h1ac02800 == _T_52 | (32'h1ac02800
     == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02400 == _T_52 | (32'h1ac02000 == _T_52 | 32'h1ac02000 == _T_52)))))); // @[AluDecoder.scala 450:46 453:20]
  assign io_intWrEn_movWrEn = movSelEn != 3'h0; // @[AluDecoder.scala 519:37]
  assign io_intWrEn_bfmWrEn = bfmEn; // @[AluDecoder.scala 520:28]
  assign io_intWrEn_wrResultEn = addrP1EnReg | andP1EnReg | orP1EnReg | xorP1EnReg ? wrResultP1EnReg : wrResultP0En; // @[AluDecoder.scala 522:32]
  assign io_intWrEn_wrnzcvEn = _io_intWrEn_wrResultEn_T_2 ? wrnzcvP1EnReg : wrnzcvP0En; // @[AluDecoder.scala 523:30]
  assign io_intWrEn_miscWrEn = miscSelEn != 5'h0; // @[AluDecoder.scala 521:39]
  always @(posedge clock) begin
    if (reset) begin // @[AluDecoder.scala 74:19]
      sf <= 1'h0; // @[AluDecoder.scala 74:19]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      sf <= io_instr[31]; // @[AluDecoder.scala 498:10]
    end else begin
      sf <= 32'h90000000 == _T_242 | (32'h10000000 == _T_242 | _GEN_1443);
    end
    if (reset) begin // @[AluDecoder.scala 75:21]
      imm3 <= 3'h0; // @[AluDecoder.scala 75:21]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm3 <= 3'h0; // @[AluDecoder.scala 405:12]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm3 <= 3'h0; // @[AluDecoder.scala 405:12]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      imm3 <= 3'h0; // @[AluDecoder.scala 405:12]
    end else begin
      imm3 <= _GEN_610;
    end
    if (reset) begin // @[AluDecoder.scala 76:21]
      imm5 <= 5'h0; // @[AluDecoder.scala 76:21]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm5 <= io_instr[20:16]; // @[AluDecoder.scala 406:12]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm5 <= io_instr[20:16]; // @[AluDecoder.scala 406:12]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      imm5 <= io_instr[20:16]; // @[AluDecoder.scala 406:12]
    end else begin
      imm5 <= _GEN_611;
    end
    if (reset) begin // @[AluDecoder.scala 77:21]
      imm6 <= 6'h0; // @[AluDecoder.scala 77:21]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      imm6 <= 6'h0; // @[AluDecoder.scala 504:12]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      imm6 <= 6'h0; // @[AluDecoder.scala 504:12]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      imm6 <= 6'h0; // @[AluDecoder.scala 504:12]
    end else begin
      imm6 <= _GEN_1449;
    end
    if (reset) begin // @[AluDecoder.scala 78:22]
      imm12 <= 12'h0; // @[AluDecoder.scala 78:22]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm12 <= 12'h0; // @[AluDecoder.scala 408:13]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      imm12 <= 12'h0; // @[AluDecoder.scala 408:13]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      imm12 <= 12'h0; // @[AluDecoder.scala 408:13]
    end else begin
      imm12 <= _GEN_613;
    end
    if (reset) begin // @[AluDecoder.scala 79:22]
      imm16 <= 16'h0; // @[AluDecoder.scala 79:22]
    end else if (32'h52800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      imm16 <= io_instr[20:5]; // @[AluDecoder.scala 472:13]
    end else if (32'h12800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      imm16 <= io_instr[20:5]; // @[AluDecoder.scala 472:13]
    end else if (32'h72800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      imm16 <= io_instr[20:5]; // @[AluDecoder.scala 472:13]
    end else begin
      imm16 <= _GEN_1093;
    end
    if (reset) begin // @[AluDecoder.scala 80:22]
      imms6 <= 6'h0; // @[AluDecoder.scala 80:22]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      imms6 <= 6'h0; // @[AluDecoder.scala 503:13]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      imms6 <= 6'h0; // @[AluDecoder.scala 503:13]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      imms6 <= 6'h0; // @[AluDecoder.scala 503:13]
    end else begin
      imms6 <= _GEN_1448;
    end
    if (reset) begin // @[AluDecoder.scala 81:22]
      immr6 <= 6'h0; // @[AluDecoder.scala 81:22]
    end else if (32'h53003c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      immr6 <= io_instr[21:16]; // @[AluDecoder.scala 485:13]
    end else if (32'h53001c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      immr6 <= io_instr[21:16]; // @[AluDecoder.scala 485:13]
    end else if (32'h53000000 == _T_58) begin // @[AluDecoder.scala 477:44]
      immr6 <= io_instr[21:16]; // @[AluDecoder.scala 485:13]
    end else begin
      immr6 <= _GEN_1174;
    end
    if (reset) begin // @[AluDecoder.scala 82:21]
      immN <= 1'h0; // @[AluDecoder.scala 82:21]
    end else if (32'h53003c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      immN <= io_instr[22]; // @[AluDecoder.scala 486:12]
    end else if (32'h53001c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      immN <= io_instr[22]; // @[AluDecoder.scala 486:12]
    end else if (32'h53000000 == _T_58) begin // @[AluDecoder.scala 477:44]
      immN <= io_instr[22]; // @[AluDecoder.scala 486:12]
    end else begin
      immN <= _GEN_1175;
    end
    if (reset) begin // @[AluDecoder.scala 83:20]
      sh1 <= 1'h0; // @[AluDecoder.scala 83:20]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      sh1 <= 1'h0; // @[AluDecoder.scala 409:11]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      sh1 <= 1'h0; // @[AluDecoder.scala 409:11]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      sh1 <= 1'h0; // @[AluDecoder.scala 409:11]
    end else begin
      sh1 <= _GEN_614;
    end
    if (reset) begin // @[AluDecoder.scala 84:20]
      sh2 <= 2'h0; // @[AluDecoder.scala 84:20]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      sh2 <= io_instr[23:22]; // @[AluDecoder.scala 445:11]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      sh2 <= io_instr[23:22]; // @[AluDecoder.scala 445:11]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      sh2 <= 2'h0; // @[AluDecoder.scala 445:11]
    end else begin
      sh2 <= _GEN_927;
    end
    if (reset) begin // @[AluDecoder.scala 85:19]
      hw <= 2'h0; // @[AluDecoder.scala 85:19]
    end else if (32'h52800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      hw <= io_instr[22:21]; // @[AluDecoder.scala 470:10]
    end else if (32'h12800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      hw <= io_instr[22:21]; // @[AluDecoder.scala 470:10]
    end else if (32'h72800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      hw <= io_instr[22:21]; // @[AluDecoder.scala 470:10]
    end else begin
      hw <= _GEN_1091;
    end
    if (reset) begin // @[AluDecoder.scala 86:20]
      opt <= 3'h0; // @[AluDecoder.scala 86:20]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      opt <= 3'h0; // @[AluDecoder.scala 411:11]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      opt <= 3'h0; // @[AluDecoder.scala 411:11]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      opt <= 3'h0; // @[AluDecoder.scala 411:11]
    end else begin
      opt <= _GEN_616;
    end
    if (reset) begin // @[AluDecoder.scala 87:20]
      op2 <= 2'h0; // @[AluDecoder.scala 87:20]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      op2 <= io_instr[11:10]; // @[AluDecoder.scala 461:11]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      op2 <= io_instr[11:10]; // @[AluDecoder.scala 461:11]
    end else if (32'h1ac02800 == _T_52) begin // @[AluDecoder.scala 450:46]
      op2 <= io_instr[11:10]; // @[AluDecoder.scala 461:11]
    end else begin
      op2 <= _GEN_1050;
    end
    if (reset) begin // @[AluDecoder.scala 88:21]
      cond <= 4'h0; // @[AluDecoder.scala 88:21]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      cond <= 4'h0; // @[AluDecoder.scala 502:12]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      cond <= 4'h0; // @[AluDecoder.scala 502:12]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      cond <= 4'h0; // @[AluDecoder.scala 502:12]
    end else begin
      cond <= _GEN_1447;
    end
    if (reset) begin // @[AluDecoder.scala 89:24]
      immMask <= 4'h0; // @[AluDecoder.scala 89:24]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      immMask <= 4'h0; // @[AluDecoder.scala 499:15]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immMask <= 4'h0; // @[AluDecoder.scala 499:15]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immMask <= 4'h0; // @[AluDecoder.scala 499:15]
    end else begin
      immMask <= _GEN_1444;
    end
    if (reset) begin // @[AluDecoder.scala 90:22]
      immHi <= 19'h0; // @[AluDecoder.scala 90:22]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      immHi <= 19'h0; // @[AluDecoder.scala 500:13]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immHi <= io_instr[23:5]; // @[AluDecoder.scala 500:13]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immHi <= io_instr[23:5]; // @[AluDecoder.scala 500:13]
    end else begin
      immHi <= 19'h0;
    end
    if (reset) begin // @[AluDecoder.scala 91:22]
      immLo <= 2'h0; // @[AluDecoder.scala 91:22]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      immLo <= 2'h0; // @[AluDecoder.scala 501:13]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immLo <= io_instr[30:29]; // @[AluDecoder.scala 501:13]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      immLo <= io_instr[30:29]; // @[AluDecoder.scala 501:13]
    end else begin
      immLo <= 2'h0;
    end
    if (reset) begin // @[AluDecoder.scala 92:25]
      extRegEn <= 1'h0; // @[AluDecoder.scala 92:25]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      extRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      extRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      extRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else begin
      extRegEn <= _GEN_592;
    end
    if (reset) begin // @[AluDecoder.scala 93:27]
      shiftRegEn <= 1'h0; // @[AluDecoder.scala 93:27]
    end else begin
      shiftRegEn <= _GEN_978;
    end
    if (reset) begin // @[AluDecoder.scala 94:29]
      shiftInstrEn <= 1'h0; // @[AluDecoder.scala 94:29]
    end else begin
      shiftInstrEn <= wrShiftP0En;
    end
    if (reset) begin // @[AluDecoder.scala 95:30]
      shiftRegType0 <= 1'h0; // @[AluDecoder.scala 95:30]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType0 <= 1'h0; // @[AluDecoder.scala 454:21]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType0 <= 1'h0; // @[AluDecoder.scala 454:21]
    end else if (32'h1ac02800 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType0 <= 1'h0; // @[AluDecoder.scala 454:21]
    end else begin
      shiftRegType0 <= _GEN_1044;
    end
    if (reset) begin // @[AluDecoder.scala 96:30]
      shiftRegType1 <= 1'h0; // @[AluDecoder.scala 96:30]
    end else begin
      shiftRegType1 <= _GEN_1075;
    end
    if (reset) begin // @[AluDecoder.scala 97:34]
      shiftRegType1Long <= 1'h0; // @[AluDecoder.scala 97:34]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType1Long <= 1'h0; // @[AluDecoder.scala 460:25]
    end else if (32'h1ac02c00 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType1Long <= 1'h0; // @[AluDecoder.scala 460:25]
    end else if (32'h1ac02800 == _T_52) begin // @[AluDecoder.scala 450:46]
      shiftRegType1Long <= 1'h0; // @[AluDecoder.scala 460:25]
    end else begin
      shiftRegType1Long <= _GEN_1049;
    end
    if (reset) begin // @[AluDecoder.scala 99:23]
      condEn <= 1'h0; // @[AluDecoder.scala 99:23]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      condEn <= 1'h0; // @[AluDecoder.scala 497:14]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      condEn <= 1'h0; // @[AluDecoder.scala 497:14]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      condEn <= 1'h0; // @[AluDecoder.scala 497:14]
    end else begin
      condEn <= _GEN_1442;
    end
    if (reset) begin // @[AluDecoder.scala 100:25]
      addrP0En <= 1'h0; // @[AluDecoder.scala 100:25]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrP0En <= 1'h0; // @[AluDecoder.scala 392:16]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrP0En <= 1'h0; // @[AluDecoder.scala 392:16]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      addrP0En <= 1'h0; // @[AluDecoder.scala 392:16]
    end else begin
      addrP0En <= _GEN_598;
    end
    if (reset) begin // @[AluDecoder.scala 101:25]
      addrP1En <= 1'h0; // @[AluDecoder.scala 101:25]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrP1En <= 1'h0; // @[AluDecoder.scala 393:16]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrP1En <= 1'h0; // @[AluDecoder.scala 393:16]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      addrP1En <= 1'h0; // @[AluDecoder.scala 393:16]
    end else begin
      addrP1En <= _GEN_599;
    end
    if (reset) begin // @[AluDecoder.scala 102:26]
      bitMaskEn <= 1'h0; // @[AluDecoder.scala 102:26]
    end else begin
      bitMaskEn <= _GEN_1190;
    end
    if (reset) begin // @[AluDecoder.scala 103:24]
      andP0En <= 1'h0; // @[AluDecoder.scala 103:24]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      andP0En <= 1'h0; // @[AluDecoder.scala 425:15]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      andP0En <= 1'h0; // @[AluDecoder.scala 425:15]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      andP0En <= 1'h0; // @[AluDecoder.scala 425:15]
    end else begin
      andP0En <= _GEN_910;
    end
    if (reset) begin // @[AluDecoder.scala 104:24]
      andP1En <= 1'h0; // @[AluDecoder.scala 104:24]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      andP1En <= 1'h0; // @[AluDecoder.scala 428:15]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      andP1En <= 1'h0; // @[AluDecoder.scala 428:15]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      andP1En <= 1'h0; // @[AluDecoder.scala 428:15]
    end else begin
      andP1En <= _GEN_913;
    end
    if (reset) begin // @[AluDecoder.scala 105:23]
      orP0En <= 1'h0; // @[AluDecoder.scala 105:23]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      orP0En <= 1'h0; // @[AluDecoder.scala 426:14]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      orP0En <= 1'h0; // @[AluDecoder.scala 426:14]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      orP0En <= 1'h0; // @[AluDecoder.scala 426:14]
    end else begin
      orP0En <= _GEN_911;
    end
    if (reset) begin // @[AluDecoder.scala 106:23]
      orP1En <= 1'h0; // @[AluDecoder.scala 106:23]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      orP1En <= 1'h0; // @[AluDecoder.scala 429:14]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      orP1En <= 1'h0; // @[AluDecoder.scala 429:14]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      orP1En <= 1'h0; // @[AluDecoder.scala 429:14]
    end else begin
      orP1En <= _GEN_914;
    end
    if (reset) begin // @[AluDecoder.scala 107:24]
      xorP0En <= 1'h0; // @[AluDecoder.scala 107:24]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      xorP0En <= _T; // @[AluDecoder.scala 427:15]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      xorP0En <= _T; // @[AluDecoder.scala 427:15]
    end else begin
      xorP0En <= 32'h52000000 == _T_58;
    end
    if (reset) begin // @[AluDecoder.scala 108:24]
      xorP1En <= 1'h0; // @[AluDecoder.scala 108:24]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      xorP1En <= long; // @[AluDecoder.scala 430:15]
    end else begin
      xorP1En <= 32'h4a000000 == _T_60 & long;
    end
    if (reset) begin // @[AluDecoder.scala 109:25]
      movSelEn <= 3'h0; // @[AluDecoder.scala 109:25]
    end else if (32'h52800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      movSelEn <= 3'h3; // @[AluDecoder.scala 469:16]
    end else if (32'h12800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      movSelEn <= 3'h2; // @[AluDecoder.scala 469:16]
    end else if (32'h72800000 == _T_58) begin // @[AluDecoder.scala 467:44]
      movSelEn <= 3'h4; // @[AluDecoder.scala 469:16]
    end else begin
      movSelEn <= {{1'd0}, _GEN_1090};
    end
    if (reset) begin // @[AluDecoder.scala 110:22]
      bfmEn <= 1'h0; // @[AluDecoder.scala 110:22]
    end else begin
      bfmEn <= _GEN_1191;
    end
    if (reset) begin // @[AluDecoder.scala 111:24]
      bfmSign <= 1'h0; // @[AluDecoder.scala 111:24]
    end else if (32'h53003c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      bfmSign <= 1'h0; // @[AluDecoder.scala 481:15]
    end else if (32'h53001c00 == _T_192) begin // @[AluDecoder.scala 477:44]
      bfmSign <= 1'h0; // @[AluDecoder.scala 481:15]
    end else if (32'h53000000 == _T_58) begin // @[AluDecoder.scala 477:44]
      bfmSign <= 1'h0; // @[AluDecoder.scala 481:15]
    end else begin
      bfmSign <= _GEN_1171;
    end
    if (reset) begin // @[AluDecoder.scala 112:26]
      miscSelEn <= 5'h0; // @[AluDecoder.scala 112:26]
    end else if (32'hd503201f == io_instr) begin // @[AluDecoder.scala 492:45]
      miscSelEn <= 5'h1a; // @[AluDecoder.scala 494:17]
    end else if (32'h90000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      miscSelEn <= 5'h19; // @[AluDecoder.scala 494:17]
    end else if (32'h10000000 == _T_242) begin // @[AluDecoder.scala 492:45]
      miscSelEn <= 5'h18; // @[AluDecoder.scala 494:17]
    end else begin
      miscSelEn <= _GEN_1439;
    end
    if (reset) begin // @[AluDecoder.scala 113:26]
      addrOp1En <= 1'h0; // @[AluDecoder.scala 113:26]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp1En <= 1'h0; // @[AluDecoder.scala 398:17]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp1En <= 1'h0; // @[AluDecoder.scala 398:17]
    end else begin
      addrOp1En <= 32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 | (32'h7a400000 == _T_74 | (32'h7a400800 == _T_74 | (32'h6b00001f
         == _T_72 | (32'h7100001f == _T_70 | (32'h6b20001f == _T_68 | _GEN_448))))));
    end
    if (reset) begin // @[AluDecoder.scala 114:32]
      addrOp2ExtRegEn <= 1'h0; // @[AluDecoder.scala 114:32]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2ExtRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2ExtRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      addrOp2ExtRegEn <= 1'h0; // @[AluDecoder.scala 386:16]
    end else begin
      addrOp2ExtRegEn <= _GEN_592;
    end
    if (reset) begin // @[AluDecoder.scala 115:34]
      addrOp2ShiftRegEn <= 1'h0; // @[AluDecoder.scala 115:34]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2ShiftRegEn <= 1'h0; // @[AluDecoder.scala 400:25]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2ShiftRegEn <= 1'h0; // @[AluDecoder.scala 400:25]
    end else if (32'h7a000000 == _T_52) begin // @[AluDecoder.scala 384:45]
      addrOp2ShiftRegEn <= 1'h0; // @[AluDecoder.scala 400:25]
    end else begin
      addrOp2ShiftRegEn <= _GEN_605;
    end
    if (reset) begin // @[AluDecoder.scala 116:26]
      addrOp2En <= 1'h0; // @[AluDecoder.scala 116:26]
    end else if (32'h7a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2En <= 1'h0; // @[AluDecoder.scala 401:17]
    end else if (32'h5a00001f == _T_108) begin // @[AluDecoder.scala 384:45]
      addrOp2En <= 1'h0; // @[AluDecoder.scala 401:17]
    end else begin
      addrOp2En <= 32'h7a000000 == _T_52 | (32'h5a000000 == _T_52 | _GEN_580);
    end
    if (reset) begin // @[AluDecoder.scala 117:29]
      addrOp2NotEn <= 1'h0; // @[AluDecoder.scala 117:29]
    end else begin
      addrOp2NotEn <= _GEN_685;
    end
    if (reset) begin // @[AluDecoder.scala 118:26]
      addrOp3En <= 1'h0; // @[AluDecoder.scala 118:26]
    end else begin
      addrOp3En <= _GEN_686;
    end
    if (reset) begin // @[AluDecoder.scala 119:27]
      logicOp1En <= 1'h0; // @[AluDecoder.scala 119:27]
    end else begin
      logicOp1En <= _GEN_992;
    end
    if (reset) begin // @[AluDecoder.scala 120:34]
      logicOp2BitMaskEn <= 1'h0; // @[AluDecoder.scala 120:34]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      logicOp2BitMaskEn <= 1'h0; // @[AluDecoder.scala 420:17]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      logicOp2BitMaskEn <= 1'h0; // @[AluDecoder.scala 420:17]
    end else begin
      logicOp2BitMaskEn <= 32'h52000000 == _T_58 | _GEN_905;
    end
    if (reset) begin // @[AluDecoder.scala 121:35]
      logicOp2ShiftRegEn <= 1'h0; // @[AluDecoder.scala 121:35]
    end else begin
      logicOp2ShiftRegEn <= _GEN_993;
    end
    if (reset) begin // @[AluDecoder.scala 123:30]
      logicOp2NotEn <= 1'h0; // @[AluDecoder.scala 123:30]
    end else begin
      logicOp2NotEn <= _GEN_995;
    end
    if (reset) begin // @[AluDecoder.scala 508:28]
      addrP1EnReg <= 1'h0; // @[AluDecoder.scala 508:28]
    end else begin
      addrP1EnReg <= addrP1En; // @[AluDecoder.scala 508:46]
    end
    if (reset) begin // @[AluDecoder.scala 509:27]
      andP1EnReg <= 1'h0; // @[AluDecoder.scala 509:27]
    end else begin
      andP1EnReg <= andP1En; // @[AluDecoder.scala 509:44]
    end
    if (reset) begin // @[AluDecoder.scala 510:26]
      orP1EnReg <= 1'h0; // @[AluDecoder.scala 510:26]
    end else begin
      orP1EnReg <= orP1En; // @[AluDecoder.scala 510:42]
    end
    if (reset) begin // @[AluDecoder.scala 511:27]
      xorP1EnReg <= 1'h0; // @[AluDecoder.scala 511:27]
    end else begin
      xorP1EnReg <= xorP1En; // @[AluDecoder.scala 511:44]
    end
    if (reset) begin // @[AluDecoder.scala 512:32]
      wrResultP1EnReg <= 1'h0; // @[AluDecoder.scala 512:32]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      wrResultP1EnReg <= long; // @[AluDecoder.scala 433:20]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      wrResultP1EnReg <= long; // @[AluDecoder.scala 433:20]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      wrResultP1EnReg <= 1'h0; // @[AluDecoder.scala 433:20]
    end else begin
      wrResultP1EnReg <= _GEN_917;
    end
    if (reset) begin // @[AluDecoder.scala 513:30]
      wrnzcvP1EnReg <= 1'h0; // @[AluDecoder.scala 513:30]
    end else if (32'h4a200000 == _T_60) begin // @[AluDecoder.scala 418:46]
      wrnzcvP1EnReg <= 1'h0; // @[AluDecoder.scala 434:18]
    end else if (32'h4a000000 == _T_60) begin // @[AluDecoder.scala 418:46]
      wrnzcvP1EnReg <= 1'h0; // @[AluDecoder.scala 434:18]
    end else if (32'h52000000 == _T_58) begin // @[AluDecoder.scala 418:46]
      wrnzcvP1EnReg <= 1'h0; // @[AluDecoder.scala 434:18]
    end else begin
      wrnzcvP1EnReg <= _GEN_918;
    end
  end
// Register and memory initialization
`ifdef RANDOMIZE_GARBAGE_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_INVALID_ASSIGN
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_REG_INIT
`define RANDOMIZE
`endif
`ifdef RANDOMIZE_MEM_INIT
`define RANDOMIZE
`endif
`ifndef RANDOM
`define RANDOM $random
`endif
`ifdef RANDOMIZE_MEM_INIT
  integer initvar;
`endif
`ifndef SYNTHESIS
`ifdef FIRRTL_BEFORE_INITIAL
`FIRRTL_BEFORE_INITIAL
`endif
initial begin
  `ifdef RANDOMIZE
    `ifdef INIT_RANDOM
      `INIT_RANDOM
    `endif
    `ifndef VERILATOR
      `ifdef RANDOMIZE_DELAY
        #`RANDOMIZE_DELAY begin end
      `else
        #0.002 begin end
      `endif
    `endif
`ifdef RANDOMIZE_REG_INIT
  _RAND_0 = {1{`RANDOM}};
  sf = _RAND_0[0:0];
  _RAND_1 = {1{`RANDOM}};
  imm3 = _RAND_1[2:0];
  _RAND_2 = {1{`RANDOM}};
  imm5 = _RAND_2[4:0];
  _RAND_3 = {1{`RANDOM}};
  imm6 = _RAND_3[5:0];
  _RAND_4 = {1{`RANDOM}};
  imm12 = _RAND_4[11:0];
  _RAND_5 = {1{`RANDOM}};
  imm16 = _RAND_5[15:0];
  _RAND_6 = {1{`RANDOM}};
  imms6 = _RAND_6[5:0];
  _RAND_7 = {1{`RANDOM}};
  immr6 = _RAND_7[5:0];
  _RAND_8 = {1{`RANDOM}};
  immN = _RAND_8[0:0];
  _RAND_9 = {1{`RANDOM}};
  sh1 = _RAND_9[0:0];
  _RAND_10 = {1{`RANDOM}};
  sh2 = _RAND_10[1:0];
  _RAND_11 = {1{`RANDOM}};
  hw = _RAND_11[1:0];
  _RAND_12 = {1{`RANDOM}};
  opt = _RAND_12[2:0];
  _RAND_13 = {1{`RANDOM}};
  op2 = _RAND_13[1:0];
  _RAND_14 = {1{`RANDOM}};
  cond = _RAND_14[3:0];
  _RAND_15 = {1{`RANDOM}};
  immMask = _RAND_15[3:0];
  _RAND_16 = {1{`RANDOM}};
  immHi = _RAND_16[18:0];
  _RAND_17 = {1{`RANDOM}};
  immLo = _RAND_17[1:0];
  _RAND_18 = {1{`RANDOM}};
  extRegEn = _RAND_18[0:0];
  _RAND_19 = {1{`RANDOM}};
  shiftRegEn = _RAND_19[0:0];
  _RAND_20 = {1{`RANDOM}};
  shiftInstrEn = _RAND_20[0:0];
  _RAND_21 = {1{`RANDOM}};
  shiftRegType0 = _RAND_21[0:0];
  _RAND_22 = {1{`RANDOM}};
  shiftRegType1 = _RAND_22[0:0];
  _RAND_23 = {1{`RANDOM}};
  shiftRegType1Long = _RAND_23[0:0];
  _RAND_24 = {1{`RANDOM}};
  condEn = _RAND_24[0:0];
  _RAND_25 = {1{`RANDOM}};
  addrP0En = _RAND_25[0:0];
  _RAND_26 = {1{`RANDOM}};
  addrP1En = _RAND_26[0:0];
  _RAND_27 = {1{`RANDOM}};
  bitMaskEn = _RAND_27[0:0];
  _RAND_28 = {1{`RANDOM}};
  andP0En = _RAND_28[0:0];
  _RAND_29 = {1{`RANDOM}};
  andP1En = _RAND_29[0:0];
  _RAND_30 = {1{`RANDOM}};
  orP0En = _RAND_30[0:0];
  _RAND_31 = {1{`RANDOM}};
  orP1En = _RAND_31[0:0];
  _RAND_32 = {1{`RANDOM}};
  xorP0En = _RAND_32[0:0];
  _RAND_33 = {1{`RANDOM}};
  xorP1En = _RAND_33[0:0];
  _RAND_34 = {1{`RANDOM}};
  movSelEn = _RAND_34[2:0];
  _RAND_35 = {1{`RANDOM}};
  bfmEn = _RAND_35[0:0];
  _RAND_36 = {1{`RANDOM}};
  bfmSign = _RAND_36[0:0];
  _RAND_37 = {1{`RANDOM}};
  miscSelEn = _RAND_37[4:0];
  _RAND_38 = {1{`RANDOM}};
  addrOp1En = _RAND_38[0:0];
  _RAND_39 = {1{`RANDOM}};
  addrOp2ExtRegEn = _RAND_39[0:0];
  _RAND_40 = {1{`RANDOM}};
  addrOp2ShiftRegEn = _RAND_40[0:0];
  _RAND_41 = {1{`RANDOM}};
  addrOp2En = _RAND_41[0:0];
  _RAND_42 = {1{`RANDOM}};
  addrOp2NotEn = _RAND_42[0:0];
  _RAND_43 = {1{`RANDOM}};
  addrOp3En = _RAND_43[0:0];
  _RAND_44 = {1{`RANDOM}};
  logicOp1En = _RAND_44[0:0];
  _RAND_45 = {1{`RANDOM}};
  logicOp2BitMaskEn = _RAND_45[0:0];
  _RAND_46 = {1{`RANDOM}};
  logicOp2ShiftRegEn = _RAND_46[0:0];
  _RAND_47 = {1{`RANDOM}};
  logicOp2NotEn = _RAND_47[0:0];
  _RAND_48 = {1{`RANDOM}};
  addrP1EnReg = _RAND_48[0:0];
  _RAND_49 = {1{`RANDOM}};
  andP1EnReg = _RAND_49[0:0];
  _RAND_50 = {1{`RANDOM}};
  orP1EnReg = _RAND_50[0:0];
  _RAND_51 = {1{`RANDOM}};
  xorP1EnReg = _RAND_51[0:0];
  _RAND_52 = {1{`RANDOM}};
  wrResultP1EnReg = _RAND_52[0:0];
  _RAND_53 = {1{`RANDOM}};
  wrnzcvP1EnReg = _RAND_53[0:0];
`endif // RANDOMIZE_REG_INIT
  `endif // RANDOMIZE
end // initial
`ifdef FIRRTL_AFTER_INITIAL
`FIRRTL_AFTER_INITIAL
`endif
`endif // SYNTHESIS
endmodule
